मैं एक दृश्य के एक bimap छवि का आकार बदल रहा / रही हूं।
बिटमैप छवि = imageCreate (GetMeasuredWidth), getMeasuredHeight ()); छवि = छवि रीसाइज़ (छवि, 62, 62); imageSave (छवि, "test.png"); रीसाइज़िंग मेरे कस्टम व्यू के अंदर होती है। <प्री> संरक्षित बिटमैप इमेज कंटेट (इंट चौड़ाई, इंटी ऊंचाई) {बिटमैप छवि = बिटमैप.सेंटबाइटमैप (चौड़ाई, ऊंचाई, बिटमैप.संघ। ARGB_8888); कैनवास कैनवास = नया कैनवास (छवि); (कैनवास) आकर्षित; वापसी छवि; } संरक्षित बिटमैप छवि रीसाइज़ (बिटमैप छवि, इंट न्यूड्यूथ, इंट न्यूहाइट) {int width = image.getWidth (); Int height = image.getHeight (); फ्लोट स्केल वाईडथ = ((फ्लोट) न्यूड्यूथ) / चौड़ाई; फ्लोट स्केलहाइट = ((फ्लोट) न्यूहाइट) / ऊंचाई; // MANIPULATION मैट्रिक्स मैट्रिक्स = नई मैट्रिक्स () के लिए एक मैट्रिक्स बनाएं; // रीसेट करें बिट मैप मैट्रिक्स.postScale (scaleWidth, scaleHeight); // नई बिटमैप बिटमैप resizedImage = बिटमैप। बनाएँबिटमैप (छवि, 0, 0, चौड़ाई, ऊंचाई, मैट्रिक्स, गलत) को पुनःप्रकाशित करें; वापसी रिज़र्व किया गया छवि; } अंत में मैं छवि को बचाता हूँ:
संरक्षित बूलियन छविसव (बिटमैप छवि, स्ट्रिंग फाइलनाम, संदर्भ संदर्भ) {try {FileOutputStream fos = context.openFileOutput (फ़ाइल नाम, संदर्भ। MODE_PRIVATE); Image.compress (बिटमैप। कॉम्प्रेसफ़ॉर्मेट.पीएनजी, 90, फोस); fos.close (); वापस सच; } पकड़ (अपवाद ई) {e.printStackTrace (); } विवरण झूठा है; } मेरा प्रश्न यह है कि छवि की गुणवत्ता इतनी खराब क्यों है कि भगवान बहुत भयानक! ???
छवि का आकार पिक्सेलटेड है मूल छवि शानदार है।
यह भी एक बेहतर तरीका है?
यह कोड
// नए बिटमैप को पुनःप्रकाशित करें बिटमैप का आकार बदलना छवि = बिटमैप.सारेबिटमैप (छवि, 0, 0, चौड़ाई, ऊंचाई, मैट्रिक्स, गलत);
अंतिम तर्क को सही पर सेट करें फ़िल्टरिंग को सक्षम करने के लिए।
क्या वह मदद करती है?
Comments
Post a Comment