दिलचस्प पोस्ट
HTML5 डेटा विशेषता का उपयोग करते हुए सीएसएस मान मुझे std :: thread :: detach का उपयोग कब करना चाहिए? UITextView में अंदर काट बंद होने के बड़े टेक्स्ट लिंक के साथ सादे यूआरएल कैसे बदलें? जावा ऑब्जेक्ट मैपिंग ऑब्जेक्ट के लिए कोई उपकरण? पोस्टग्रेएसक्यूएल द्वारा प्रस्तुत JSONB की व्याख्या मैं कैसे निर्धारित कर सकता हूं कि एप्पल विधियाँ एसिंक्रोनस हैं? स्रोत नियंत्रण में आप कॉन्फ़िगरेशन फ़ाइलों से कैसे निपटते हैं? क्या NodeJS ऐप के लिए एक बेस यूआरएल सेट करना संभव है? आपको स्क्रिप्ट फ़ाइल की शुरुआत में #! / बिन / बाश क्यों डालनी है? पायथन में पॉइंटर्स अनुकरण करना सी की छिपी हुई विशेषताओं स्प्रिंग सुरक्षा के साथ जावा कोड में "हैरोल" कैसे जांचें? टेक्स्ट चौड़ाई की गणना करना क्या इसे हटाए जाने के बाद पॉइंटर को नलाना अच्छा अभ्यास है?

HTML5 केनवास से बाइनरी (बेस 64) डेटा प्राप्त करना (readAsBinaryString)

क्या HTML कैनवास की सामग्री को द्विआधारी डेटा के रूप में पढ़ने का कोई तरीका है?

फिलहाल मुझे एक इनपुट फ़ाइल और कैनवास को नीचे दिखाने के लिए निम्न HTML मिला है:

<p><button id="myButton" type="button">Get Image Content</button></p> <p>Input:<input id="fileInput" type="file"/></p> <p>Canvas<canvas id="myCanvas" width="578" height="200"/></p> 

फिर मैंने कैनवास को सही ढंग से सेट करने के लिए अपनी इनपुट फ़ाइल सेटअप की है जो ठीक काम करती है:

 $('#fileInput').on('change', function() { $.each(this.files, function() { var image = new Image(); image.src = window.URL.createObjectURL(this); image.onload = function() { $("canvas").drawImage({ source: image, x: 50, y: 50, width: 100, fromCenter: false }); }; }); }); 

अब मुझे कैनवास से बाइनरी डेटा (बेस 64 एन्कोडेड) प्राप्त करने की आवश्यकता है जब बटन क्लिक किया जाता है, तो यह डेटा को सर्वर पर धकेल देगा …

अंतिम परिणाम यह है कि मुझे उपयोगकर्ता को फ़ाइल चुनने, फसल / फिर से आकार देने की क्षमता के साथ प्रदान करने की आवश्यकता है, और उसके बाद उस बिंदु पर क्लिक करें जिसमें संपादित छवि सर्वर पर अपलोड हो जाएगी (मैं सर्वर-साइड नहीं कर सकता सर्वर-साइड सीमाओं के कारण फसल / आकार बदलने …)

कोई भी मदद बहुत अच्छी रहेगी! चियर्स

वेब के समाधान से एकत्रित समाधान "HTML5 केनवास से बाइनरी (बेस 64) डेटा प्राप्त करना (readAsBinaryString)"

canvas तत्व एक toDataURL विधि प्रदान करता है जो data: देता है data: यूआरएल जिसमें बेस 64-एन्कोडेड छवि डेटा शामिल है, उदाहरण के लिए:

 var jpegUrl = canvas.toDataURL("image/jpeg"); var pngUrl = canvas.toDataURL(); // PNG is the default 

यद्यपि रिटर्न वैल्यू सिर्फ आधार 64 एन्कोडेड बाइनरी डेटा नहीं है, लेकिन यह सिर्फ एक मसौदा मामला है जो आपकी इच्छित डेटा प्राप्त करने के लिए स्कीम और फ़ाइल प्रकार को ट्रिम कर देता है।

toDataURL विधि विफल हो सकती है यदि ब्राउज़र सोचता है कि आप कैनवास के किसी भी डेटा को किसी अलग मूल से लोड किए गए डेटा पर खींचा गए हैं, इसलिए यह दृष्टिकोण केवल तभी काम करेगा यदि आपकी छवि फ़ाइलें उसी सर्वर से लोड की जाती हैं, जिसकी स्क्रिप्ट के द्वारा प्रदर्शन किया जा रहा है यह ऑपरेशन

अधिक जानकारी के लिए canvas एपीआई पर toDataURL डॉक्स देखें, जिसमें toDataURL पर विवरण और data: पर विकिपीडिया लेख शामिल हैं data: यूआरआई योजना , जिसमें आपको इस कॉल से मिले यूआरआई के प्रारूप पर विवरण शामिल होंगे।

आप कैसे देख सकते हैं कि आप कैनवास कैसे बनाते हैं

$("canvas").drawImage();

ऐसा लगता है कि आप कालेब इवांस द्वारा jQuery का कैनवास ( जेकनवास ) का उपयोग करते हैं। मैं वास्तव में उस प्लगइन का उपयोग करता हूं और इसे कैनवास base64 छवि स्ट्रिंग को $('canvas').getCanvasImage(); साथ पुनर्प्राप्त करने का एक आसान तरीका है $('canvas').getCanvasImage();

आपके लिए यहां काम कर रहे वायर्ड है: http://jsfiddle.net/e6nqzxpn/