2013-03-27 6 views
12

द्वारा उन्हें बदलने के बाद छवियों को सहेजना तो मेरे पास कुछ छवियां हैं और मैं कैमैनजेएस प्लगइन का उपयोग करके उन पर प्रभाव लागू कर सकता हूं। लेकिन अब मैं इन बदली हुई छवियों को सहेजना चाहता हूं और उन्हें मूल के साथ बदलना चाहता हूं।कैमानजेएस प्लगइन

प्रलेखन (link) छवियों को सहेजने के बारे में जानकारी प्रदान करता है। लेकिन इसे एक डाउनलोड प्रॉम्प्ट के रूप में देखा जाता है। मैं चाहता हूं कि छवियों को प्रॉम्प्ट के बिना और "सेव" बटन के क्लिक पर सर्वर पर सहेजा जाए।

प्रलेखन बेस 64 एन्कोडिंग के बारे में कुछ भी कहता है जिसे मैं समझ नहीं पा रहा हूं। क्या मेरी समस्या हल हो सकती है? धन्यवाद!

उत्तर

3

जैसा कि आप इस उत्तर में देख सकते हैं: https://stackoverflow.com/a/6150397/1437005 आप <canvas> और फ़ंक्शन toDataURL() का उपयोग कर किसी छवि का बेस 64 प्रतिनिधित्व प्राप्त कर सकते हैं।

जब आप base64 स्ट्रिंग आप सर्वर के लिए छवि भेजने के लिए AJAX का उपयोग कर सकते मिल (आप jQuery $.ajax या $.post तरीकों का उपयोग कर सकते हैं) और फिर सर्वर में आप एक छवि है और यह स्टोर करने के लिए डी base64 स्ट्रिंग डिकोड कर सकते हैं।

17

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

Caman("#my-image", function() { 
    this.brightness(10); 
    this.render(function() { 
    var image = this.toBase64(); 
    saveToServer(image); // your ajax function 
    }); 
}); 
+1

Caman आप प्रकार this.toImage ('png') निर्दिष्ट कर सकते हैं:

export const convertToBlob = (data, successCallBack, errorCallback) => { fetch(data) .then((res) => res.blob()) .then((blob) => successCallBack(blob)) .catch((err) => errorCallback(err)) } export const successCallBack = (blob) => { uploadBlobToServer(blob) } 

आपकी सेवा केवल फ़ाइल वस्तु (नहीं एक ब्लॉब ऑब्जेक्ट) को स्वीकार करता है, तो बस का उपयोग कर फ़ाइल ब्लॉब कन्वर्ट – bobbdelsol

+0

धन्यवाद, यह काम करता है। –

0

या इसके बजाय सर्वर से Base64 संस्करण भेजने और रूपांतरण करने की है, तो आप सामने के छोर पर ही एक ही कर सकते हैं और फिर फ़ाइल को अपनी छवि को बदलने के लिए अपलोड करें। इस तरह आपको बदलने और बदलने के लिए एक नई सेवा लिखने की आवश्यकता नहीं है। बेस 64 डेटा को @Ryan के रूप में प्राप्त करें और फिर फ़ाइल/ब्लॉब में कनवर्ट करने के लिए नीचे दिए गए फ़ंक्शन का उपयोग करें।

const imageFile = new File([blob], "imageFileName") 
संबंधित मुद्दे