छवि फ़ाइल अपलोड करें: ग्राहक पक्ष पर संपीड़न पहले से संभव है?


9

फोटो फाइल अपलोडिंग की पेशकश करते समय, आमतौर पर उपयोगकर्ता अपने कैमरे या फोन से बुरी तरह से संकुचित और विशाल (10+ मेगापिक्सेल) जेपीईजी फाइल करेगा। सर्वर की तरफ, इन फ़ाइलों को 800x600px और JPEG गुणवत्ता 7 या 8 जैसी किसी चीज़ के लिए फिर से संकुचित किया जाएगा।

क्या यह (पहले से) संभव है कि ग्राहक की ओर से फिर से संपीड़न हो? ताकि मुझे केवल कुछ 100kB (800x600px) संचारित करने की आवश्यकता हो, न कि 3 एमबी या अधिक। कुछ इस तरह:

(1) जावास्क्रिप्ट के नए फाइलसिस्टम एपीआई ( http://slides.html5rocks.com/#filewriter ) के साथ ग्राहक पक्ष जेएस में फोटो फाइल के डेटा को पढ़ना संभव होगा।

(2) फिर जेपीईजी डेटा को फिर से एनकोड करना आवश्यक होगा, जो संभव है, लेकिन मुझे लगता है कि उसके लिए (अभी तक) कोई लाइब्रेरी नहीं मिली है। ऐसे पुस्तकालय को कोई जानता है क्या?

(3) अंतिम चरण स्टोरेज के लिए सर्वर की ओर फिर से संकुचित जेपीईजी डेटा को पोस्ट करने और क्लाइंट के HTML में शामिल करने के लिए सर्वर से संग्रहीत फोटो फ़ाइल के लिए एक URL प्राप्त करना होगा।

मैं कुछ jQuery प्लगइन, अन्य JS लाइब्रेरी या उदाहरण वेब पेज की तलाश कर रहा हूं जो ऐसा करता है।


यह अनुकूलन / अपलोड करने से पहले छवियों हटना संभव है? StackOverflow में प्रश्न कई संभावित समाधान प्रस्तुत करता है।
danlefree

जवाबों:


4

Plupload छवियों के आकार में HTML5 का समर्थन करता है और फिर उन्हें अपलोड करता है, इसमें फ्लैश, सिल्वरलाइट (और Google गियर्स और ब्राउज़रप्लस की तरह पुरातन सामग्री) में असमर्थित ब्राउज़र (IE खाँसी खाँसी ) के लिए कमियां भी हैं ।


2

आप छवि को एक कैनवास तत्व पर लोड कर सकते हैं, उसका आकार बदल सकते हैं और फिर उसे अपलोड करने के लिए छवि को वापस ला सकते हैं।


ऐसा करने के लिए, देखें stackoverflow.com/questions/923885/…
Ilmari Karonen

2

इस डेमो को देखें: http://makeitsolutions.com/labs/jic

यह मेरे द्वारा बनाई गई एक जावास्क्रिप्ट लाइब्रेरी है जो उस समस्या को हल करती है।

यह आपको jpg को संपीड़ित करने की अनुमति देता है और जावास्क्रिप्ट के साथ क्लाइंट साइड पर 100% और कोई बाहरी लाइब्रेरी की आवश्यकता नहीं है!

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.