मैं क्रोम एक्सटेंशन विकसित कर रहा हूं।पीएनजी कैनवास छवि को HTML5 स्टोरेज (JAVASCRIPT) में सहेजें?
मैं कैनवास में एक छवि फ़ाइल खोलता हूं, मैं इसमें कुछ बदलाव लागू करता हूं, फिर मैं इसे HTML5 फाइल सिस्टम एपीआई में सहेजने की कोशिश कर रहा हूं। तो बस डेटा
var dataURL = canvas.toDataURL('image/png;base64');
:
सबसे पहले मैं कैनवास से dataURL मिल
var image64 = dataURL.replace(/data:image\/png;base64,/, '');
तो मैं एक ब्लॉब बनाते हैं।
var bb = new BlobBuilder();
bb.append(image64);
var blob = bb.getBlob('image/png');
फिर मैं फ़ाइल सिस्टम को InitFs() पर निम्न फ़ंक्शन के साथ अनुरोध करता हूं;
function onInitFs(fs) {
fs.root.getFile('image.png', {create: true}, function(fileEntry) {
// Create a FileWriter object for our FileEntry (log.txt).
fileEntry.createWriter(function(fileWriter) {
//WRITING THE BLOB TO FILE
fileWriter.write(blob);
}, errorHandler);
}, errorHandler);
}
window.requestFileSystem(window.PERSISTENT, 5*1024*1024, onInitFs, errorHandler);
यह परिणाम दूषित फ़ाइल फ़ाइल सिस्टम में लिखा जा रहा है।
मुझे नहीं पता कि यह काम करने के लिए मैं और क्या कर सकता हूं।
क्या कोई मुझे सही दिशा में मार्गदर्शन कर सकता है।
इस कार्य को पूरा करने के लिए उपयोग किए जा रहे कार्यों के कुछ स्रोत निम्नलिखित हैं।
http://dev.w3.org/html5/canvas-api/canvas-2d-api.html#todataurl-method
http://www.html5rocks.com/en/tutorials/file/filesystem/#toc-file-creatingempty
धन्यवाद!
मुझे पसंद नहीं है कि एचटीएमएल 5 कहां जा रहा है अगर आपके जैसे लोग यादृच्छिक रूप से मेरी हार्ड डिस्क पर 5 एमबी डेटा स्टोर करेंगे ... – Blindy
यह परीक्षण उद्देश्यों के लिए उस नंबर को बड़ा बना दिया। मैं निश्चित रूप से उस नंबर को कम कर दूंगा। मुझे लगता है कि भविष्य के लिए योजना यह है कि यदि कोई ऐप आपके कंप्यूटर में स्टोरेज का उपयोग करने का प्रयास कर रहा है तो यह पहले उपयोगकर्ता से ऐसा करने की अनुमति मांगेगा। लेकिन अभी, आप मेनिफेस्ट में "असीमित स्टोरेज" निर्दिष्ट कर सकते हैं और आप जितना चाहें उतना डेटा स्टोर कर सकते हैं। :) – Rob