http - Android Image resize (resample/downsample) before uploading -
निजी शून्य doFileUpload () {फ़ाइल file1 = नया फ़ाइल (चयनित पृष्ठ 1); स्ट्रिंग urlString = "http://example.com/upload_media_test.php"; कोशिश {एचटीटीपी क्लाइंट क्लाइंट = नया DefaultHttpClient (); एचटीटीपी पोस्ट पोस्ट = नया एचटीटीपी पोस्ट (यूआरएलस्ट्रिंग); फाइल बॉडी बिन 1 = नया फ़ाइल बॉडी (फ़ाइल 1); MultipartEntity reqEntity = नया MultipartEntity (); ReqEntity.addPart ("अपलोडफाइल 1", bin1); ReqEntity.addPart ("उपयोगकर्ता", नई स्ट्रिंगबॉडी ("उपयोगकर्ता")); post.setEntity (reqEntity); HttpResponse प्रतिक्रिया = client.execute (पोस्ट); ResEntity = response.getEntity (); अंतिम स्ट्रिंग response_str = EntityUtils.toString (resEntity); अगर (resEntity! = नल) {Log.i ("RESPONSE", response_str); RunOnUiThread (नया रननाबल () {सार्वजनिक void run () {try.setTextColor (color.GREEN); res.setText ("सर्वर से उत्तर: n" + response_str); टोस्ट। मेक टेक्स्ट (getApplicationContext ()), "अपलोड करें पूर्ण। सर्वर अपलोड निर्देशिका देखें। ", टोस्ट। LNGTH_LONG)। दिखाएं ();} पकड़ (अपवाद ई) {e.printStackTrace ();}}}); }} पकड़ (अपवाद पूर्व) {Log.e ("डीबग", "त्रुटि:" + पूर्व .getMessage (), पूर्व); }} मुझे यह कोड इंटरनेट से मिलता है यह काम है, लेकिन जब मैं 1 MBbyte की तुलना में बड़ी फाइल अपलोड करने का प्रयास करता हूं,
मुझे फाइलसिज़ के साथ एक त्रुटि का सामना करना पड़ता है।
मुझे पता है कि बिटमैप छवियों का आकार कैसे बदलना है, लेकिन मुझे पता नहीं है कि आकार बदल गया बिटमैप
पहले से धन्यवाद
"पाठ">
आपको न केवल बिटमैप का आकार बदलने की आवश्यकता है, लेकिन आपको परिणाम को .jpg छवि के रूप में भी सांकेतिक शब्दों में बदलना होगा। इसलिए, आपको फ़ाइल खोलनी चाहिए और इसे बिटमैप में परिवर्तित करना, बिटमैप को एक छोटी छवि में बदलना, छवि को एक बाइट [] सरणी में एन्कोड करना होगा, और फिर बाइट [] सरणी को उसी तरीके से अपलोड करना चाहिए जैसा आपने अपनी फ़ाइल अपलोड कर दी है file1 । यदि बिटमैप बड़ा है, जो यह स्पष्ट रूप से है, तो आप पूरी बात को खोलने के लिए पर्याप्त मेप मेमोरी नहीं करेंगे, इसलिए आपको इसे खोलना होगा < कोड> BitmapFactory.Options.inSampleSize
सबसे पहले, कम आकार बिटमैप खोलें:।
उरी uri = getImageUri (selectedPath1); बिटमैपफ़ैक्टर। विकल्प विकल्प = नया बिटमैपफ़ीचर। ऑप्शन (); Options.inSampleSize = 4; // उदाहरण, इष्टतम मूल्य की गणना करने के तरीके भी हैं InputStream = in = contentResolver.openInputStream (यूरी); बिटमैप बिटमैप = बिटमैपफ़ैरेंटर। एकोडस्ट्रीम (में, रिक्त, विकल्प); इसके बाद, एक में एनकोड बाइट [] सरणी: ByteArrayOutputStream baos = नए ByteArrayOutputStream (); Bitmap.compress (बिटमैप। कॉम्प्रोफ़ॉर्मेट। जेपीईजी, गुणवत्ता, बाओ); बाइट [] bitmapdata = bos.toByteArray (); अंत में, reqEntity.addPart () को बाइट [] सरणी को सीधे जोड़कर, या एक छोटी फ़ाइल में लिखें और जोड़ दें आपके मौजूदा उदाहरण के रूप में फ़ाइल।
Comments
Post a Comment