2011-06-25 21 views
10

मैं BitmapFactory.decodeFile() और BitmapFactory.decodeResource() पर कई कॉल कर रहा हूं, और मैं बिटमैप्स को प्रारूपित करना चाहता हूं जैसे RGB_565 या RGBA_8888।मैं बिटमैपफैक्टरी.decode *() के साथ बिटमैप प्रारूप (उदा। आरजीबीए_8888) कैसे निर्दिष्ट कर सकता हूं?

वर्तमान में, डीकोडेड बिटमैप प्रारूप आने वाली छवि पर निर्भर करता है। वैकल्पिक रूप से, मौजूदा बिटमैप को किसी विशिष्ट प्रारूप में बदलने का कोई तरीका है?

कारण यह महत्वपूर्ण है कि जब मैं jnigraphics का उपयोग कर चित्र को डीकोड करने की कोशिश, कुछ छवियों लौट प्रकार ANDROID_BITMAP_FORMAT_NONE के AndroidBitmapFormat है, जो मुझे लगता है बेकार है। क्या किसी के पास अधिक अंतर्दृष्टि है कि क्यों प्रारूप ज्ञात मूल्यों में से कोई नहीं होगा? जब ऐसा होता है, तो अंतर्निहित छवि पिकर छवियों को सही ढंग से प्रदर्शित करता है जो इस तरह से डीकोड किए जाते हैं, इसलिए मुझे लगता है कि उनके साथ सौदा करने का एक तरीका होना चाहिए।

आपके इनपुट के लिए धन्यवाद!

उत्तर

22

यह हो सकता है आप के लिए क्या देख रहे:

BitmapFactory.Options op = new BitmapFactory.Options(); 
op.inPreferredConfig = Bitmap.Config.ARGB_8888; 
bitmap = BitmapFactory.decodeFile(path, op); 
+1

आरजीबी 8888 एआरजीबी नहीं – neogineer

1

जब आपके पास बिटमैप होता है तो आप बिटमैप कॉन्फिग निर्दिष्ट करते हुए कॉपी विधि को कॉल कर सकते हैं जो मूल रूप से आप चाहते हैं। http://developer.android.com/reference/android/graphics/Bitmap.html#copy(android.graphics.Bitmap.Config,boolean)

+0

मैं वहाँ उम्मीद थी डिकोड दौरान ऐसा करने के लिए एक रास्ता हो सकता है, के बजाय बाद में एक प्रतिलिपि बना रही है। ऐसा लगता है कि यह एकमात्र तरीका है। –