दिलचस्प पोस्ट
इकाई फ़्रेमवर्क: मैं सीएसडीएल / एमएसएल को कहां बढ़ाता हूं? पी बनाम रूबी में डालता है PHP संख्या प्रारूप .NET – "अपवाद अपवाद सभी को पकड़ने" को लागू करने का सबसे अच्छा तरीका क्या है कैसे प्राप्त करने के लिए कि "ui-sref" सशर्त निष्पादित हो? उद्देश्य सी में पीडीएफ पाठ निकालना HTML से angular2 घटक के चयनकर्ता टैग को कैसे हटाए / बदलना है जावास्क्रिप्ट सॉर्ट फ़ंक्शन पहले तो दूसरे द्वारा क्रमबद्ध करें सी में आप stdin / stdout / stderr को एक execvp () या समान कॉल करते समय फ़ाइलों में कैसे रीडायरेक्ट करते हैं? SLF4J: कक्षा पथ में कई एसएलएफ 4J बाइंडिंग शामिल हैं कुछ करें यदि स्क्रीन की चौड़ाई 960 पिक्सल से कम है लिनक्स में माप का समय – बनाम बनाम बनाम बनाम व्हाट्सगेज बनाम घड़ी-गेट टाइम बनाम टाइमटाइफ़डे बनाम टाइमपेक_गेट? MATLAB में अनुलग्नक मैट्रिक्स का निर्माण बूटस्ट्रैप 3 में navbar तत्व के बाहर क्लिक करते समय एक खुला ढंका हुआ नवबार बंद कैसे करें? पूंछ- F के एक अजगर समतुल्य को कैसे लागू किया जाए?

आप एक छवि को तीन। जेएस कैनवास से कैसे बचा सकते हैं?

आप एक छवि को तीन। जेएस कैनवास से कैसे बचा सकते हैं?

मैं कैनवास 2 छवि का उपयोग करने का प्रयास कर रहा हूं लेकिन यह थ्रीजेस के साथ खेलना पसंद नहीं करता। चूंकि कैनवास को परिभाषित नहीं किया जाता है, जब तक कि इसमें एक कैनवास ऑब्जेक्ट को डिवाइज करने के लिए डिव नहीं होता है।

Canvas2Image: Save out your canvas data to images

Solutions Collecting From Web of "आप एक छवि को तीन। जेएस कैनवास से कैसे बचा सकते हैं?"

चूंकि toDataURL कैनवास HTML तत्व की एक विधि है, जो 3 डी संदर्भ के लिए भी काम करेगा। लेकिन आपको दो चीजों का ध्यान रखना होगा

  1. सुनिश्चित करें कि जब 3 डी प्रसंग आरंभ होता है, तो आप सही करने के लिए preserveDrawingBuffer ध्वज को preserveDrawingBuffer करते हैं, जैसे:

     var context = canvas.getContext("experimental-webgl", {preserveDrawingBuffer: true}); 
  2. फिर उपयोगकर्ता canvas.toDataURL()canvas.toDataURL() छवि पाने के लिए

तीन जेएस में आपको रेंडरर को तत्काल तभी निम्नलिखित करना होगा:

 new THREE.WebGLRenderer({ preserveDrawingBuffer: true }); 

यह भी ध्यान रखें कि इस पर प्रभाव पड़ सकता है (पढ़ें: https://github.com/mrdoob/three.js/pull/421#issuecomment-1792008 )

यह केवल वेबल रेंडरर के लिए है , हालांकि, तीन जेएस कैनवास रेन्डरर के मामले में, आप बस renderer.domElement.toDataURL(); कर सकते हैं renderer.domElement.toDataURL(); सीधे, कोई प्रारंभिक पैरामीटर की आवश्यकता नहीं है

मेरा वेबलॉग प्रयोग: http://jsfiddle.net/TxcTr/3/ स्क्रीनशॉट पर ' पी ' दबाएं।

इस सवाल का उत्तर देने के लिए, मैंने अपनी टिप्पणी में लिंक का अनुसरण किया।

मैंने दिनेश ( https://github.com/mrdoob/three.js/pull/421#issuecomment-1792008 ) द्वारा पोस्ट की गई बातचीत को पढ़ा और एक ऐसे समाधान के साथ आया जो आपके आवेदन को धीमा नहीं करेगा।

  function render() { requestAnimationFrame(render); renderer.render(scene, camera); if(getImageData == true){ imgData = renderer.domElement.toDataURL(); getImageData = false; } } 

इसके साथ आप झूठ पर ड्रॉइंगबफ़र-फ्लैग की रक्षा कर सकते हैं और अभी भी तीन। जेएस से छवि प्राप्त कर सकते हैं। बस getImageData को सही पर सेट करें और रेंडर करें () कॉल करें और आप जाने के लिए अच्छा है

 getImageData = true; render(); console.debug(imgData); 

उम्मीद है कि यह मेरे जैसे लोग हैं जो उच्च एफपीएस की आवश्यकता है 🙂