दिलचस्प पोस्ट
आर स्क्रिप्ट में कमांड लाइन तर्क को पार्स करना पाठ बॉक्स सी # में मैक्स चार? क्या संगतता पैकेज से जानबूझकर बाहर रखा गया था? डीबगिंग। Htaccess के लिए युक्तियां फिर से लिखना नियम mysqli :: mysqli (): (HY000 / 2002): 'MySQL' सॉकेट के माध्यम से स्थानीय MySQL सर्वर से कनेक्ट नहीं हो सकता (2) Android में कस्टम अनुमतियों का उपयोग कैसे करें? GOTO का उपयोग करें या नहीं? जावा थ्रेड सृजन ओवरहेड MongoDB, सरणी से ऑब्जेक्ट निकालें माइग्रेशन के माध्यम से कॉलम में एक डिफ़ॉल्ट मान जोड़ें चेन कॉल के लिए नकली या स्टब एक numpy array में कई मानों के पंक्ति अनुक्रमित खोजें मैट्रिक्स में दिए गए मान के तत्वों की संख्या कैसे गिना जा सकता है? jQuery पोस्ट, त्रुटि 405 विधि की अनुमति नहीं है पायथन में एक यादृच्छिक हेक्स रंग उत्पन्न करना

सर्वर पर अपलोड करने से पहले जावास्क्रिप्ट के साथ क्लाइंट-साइड का आकार बदलना

मैं जानना चाहूंगा कि क्या तकनीकी रूप से जावास्क्रिप्ट के साथ क्लाइंट-साइड पर एक छवि का आकार बदलना संभव है (वास्तव में आकार बदलना, न केवल चौड़ाई और ऊंचाई बदलना) मुझे पता है कि फ्लैश में ऐसा करना संभव है, लेकिन यदि संभव हो तो मैं इसे से बचाना चाहूंगा क्या वेब पर कहीं कोई ओपन सोर्स एल्गोरिदम है?

Solutions Collecting From Web of "सर्वर पर अपलोड करने से पहले जावास्क्रिप्ट के साथ क्लाइंट-साइड का आकार बदलना"

यह एक ऐसा सार है जो यह करता है: https://gist.github.com/dcollien/312bce1270a5f511bf4a

(एक es6 संस्करण, और .js संस्करण जो एक स्क्रिप्ट टैग में शामिल किया जा सकता है)

आप इसे निम्नानुसार उपयोग कर सकते हैं:

<input type="file" id="select"> <img id="preview"> <script> document.getElementById('select').onchange = function(evt) { ImageTools.resize(this.files[0], { width: 320, // maximum width height: 240 // maximum height }, function(blob, didItResize) { // didItResize will be true if it managed to resize it, otherwise false (and will return the original file as 'blob') document.getElementById('preview').src = window.URL.createObjectURL(blob); // you can also now upload this blob using an XHR. }); }; </script> 

इसमें यह सुनिश्चित करने के लिए कि यह कई ब्राउज़रों पर काम करता है, जैसा कि मैं प्रबंधित कर सकता हूं, इसमें समर्थन पहचान और पॉलीफिल का एक गुच्छा शामिल होता है।

(यह भी जीआईएफ छवियों को अनदेखा करता है – यदि वे एनिमेटेड हैं)

इसका उत्तर हां है – एचटीएमएल 5 में कैनवास तत्व का उपयोग करते हुए आप क्लाइंट साइड की छवि का आकार बदल सकते हैं। आप नए डेटा भी ले सकते हैं और उसे किसी सर्वर पर भेज सकते हैं। यह ट्यूटोरियल देखें:

http://hacks.mozilla.org/2011/01/how-to-develop-a-html5-image-uploader/

सुनिश्चित नहीं है कि आप ऐसा क्यों करना चाहते हैं … लेकिन अगर आप अपलोड करने से पहले कहां आकार बदलते हैं तो मुझे यह पता चला http://www.plupload.com/ यह आपके लिए किसी भी कल्पनीय विधि में सभी जादू करता है।

दुर्भाग्य से एचटीएमएल 5 का आकार केवल मोज़िला बोरर्स के साथ है, लेकिन आप अन्य ब्राउज़रों को फ़्लैश और सिल्वरलाइट के लिए रीडायरेक्ट कर सकते हैं।

मैं सिर्फ यह कोशिश की और मेरे एंड्रॉइड के साथ काम किया !.

मैं http://swfupload.org/ फ्लैश में उपयोग कर रहा था, यह काम बहुत अच्छी तरह से करता है, लेकिन आकार का आकार बहुत छोटा है। (सीमा को याद नहीं रख सकता) और फ्लैश उपलब्ध नहीं होने पर वापस html4 नहीं जाता है।

http://nodeca.github.io/pica/demo/

आधुनिक ब्राउज़र में आप छवि डेटा को लोड / सहेजने के लिए कैनवास का उपयोग कर सकते हैं। लेकिन अगर आप क्लाइंट पर छवि का आकार बदलते हैं तो आपको कई चीजों को ध्यान में रखना चाहिए:

  1. आपके पास केवल 8bits प्रति चैनल होगा (जेपीईजी बेहतर गतिशील श्रेणी, लगभग 12 बिट्स हो सकता है) यदि आप व्यावसायिक फ़ोटो अपलोड नहीं करते हैं, तो यह समस्या नहीं होनी चाहिए।
  2. अलगोरिथम का आकार बदलने के बारे में सावधान रहें क्लाइंट साइड रिसाइजर्स का सबसे अधिक तुच्छ गणित का उपयोग करते हैं, और इससे भी बदतर यह हो सकता है
  3. आपको डाउनस्केल्ड छवि को तेज करना पड़ सकता है
  4. यदि आप मेटाडाटा (एक्सआईफ़ और अन्य) को मूल से पुन: उपयोग करना चाहते हैं – रंग प्रोफ़ाइल जानकारी को पट्टी करना मत भूलना क्योंकि जब आप छवि को कैनवास में लोड करते हैं तब यह लागू होता है

कैनवास टैग के साथ शायद (हालांकि यह पोर्टेबल नहीं है)। यहां कैनवास के साथ एक छवि को घुमाने के बारे में एक ब्लॉग है , मुझे लगता है कि अगर आप इसे घुमा सकते हैं, तो आप इसका आकार बदल सकते हैं शायद यह एक शुरुआती बिंदु हो सकता है

वहाँ भी देखें

हां, आधुनिक ब्राउज़रों के साथ यह पूरी तरह से संभव है। फ़ाइल को अपलोड करने के बिंदु पर भी संभवतः बायनरी फ़ाइल के रूप में किसी भी संख्या में कैनवास परिवर्तन किए गए हैं।

http://jsfiddle.net/bo40drmv/

(यह उत्तर स्वीकार्य उत्तर में सुधार है )

PHP में परिणाम प्रस्तुत करने की प्रक्रिया को पकड़ने के लिए ध्यान में रखते हुए:

 //File destination $destination = "/folder/cropped_image.png"; //Get uploaded image file it's temporary name $image_tmp_name = $_FILES["cropped_image"]["tmp_name"][0]; //Move temporary file to final destination move_uploaded_file($image_tmp_name, $destination); 

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

यह संभव है html5 के साथ

अभी के लिए, आप इसे करने के लिए Silverlight का उपयोग कर सकते हैं यहाँ एक महान प्रारंभिक बिंदु है

http://www.codeplex.com/SilverlightFileUpld