जब मैं copyPixelsFromBuffer और copyPixelsToBuffer उपयोग कर रहा हूँ, बिटमैप ही एक के रूप में दिखाई नहीं दे रहा का उपयोग करना, मैं नीचे दिए गए कोड की कोशिश की है:नए बिटमैप कॉपी पर बदली गई बफर
Bitmap bm = BitmapFactory.decodeByteArray(a, 0, a.length);
int[] pixels = new int[bm.getWidth() * bm.getHeight()];
bm.getPixels(pixels, 0, bm.getWidth(), 0, 0,bm.getWidth(),bm.getHeight());
ByteBuffer buffer = ByteBuffer.allocate(bm.getRowBytes()*bm.getHeight());
bm.copyPixelsToBuffer(buffer);//I copy the pixels from Bitmap bm to the buffer
ByteBuffer buffer1 = ByteBuffer.wrap(buffer.array());
newbm = Bitmap.createBitmap(160, 160,Config.RGB_565);
newbm.copyPixelsFromBuffer(buffer1);//I read pixels from the Buffer and put the pixels to the Bitmap newbm.
imageview1.setImageBitmap(newbm);
imageview2.setImageBitmap(bm);
क्यों बिटमैप बी.एम. और newbm प्रदर्शित नहीं किया वही सामग्री?
बिटमैपफ़ैक्टरी.ऑप्शन ऑप्ट्स = नए विकल्प(); opts.inPreferredConfig = Config.RGB_565; \t \t \t \t \t बीएम = बिटमैपफैक्टरी.decodeByteArray (ए, 0, a.length, opts); मूल बिटमैप की कॉन्फ़िगरेशन RGB565 है, यहां तक कि मैं कॉन्फ़िगरेशन सेट नहीं करता हूं, कॉन्फ़िगरेशन RGB565 के रूप में डिफ़ॉल्ट है ... – Hexor
@Hexor मेरे उत्तर कार्य में वर्णित अन्य विधियां करें? 'बीएम' की तुलना में 'newbm' देखो कितना अलग है? –
आकार सही नहीं है, और गुणवत्ता बहुत कम है। मुझे स्वयं एक समाधान मिला जो इस तरह है, मूल बीएम नामक बिटमैप बनाएं, और मूल बीएम शुरू करने के लिए बिटमैप फैक्ट्री की डिकोड विधि कहा जाता है (केवल यह सुनिश्चित करें कि पैरामीटर मूल बीएम सही शुरू कर सकता है), तो मैं newbm = originBm का उपयोग करता हूं; newbm.copyPixelsFromBuffer (buffer1)। इसके बाद, newbm सही चीज़ प्रदर्शित कर सकता है। मुझे नहीं पता कि इसका कारण किस कारण से है, लेकिन मैंने सोचा कि शायद copyPixelsFromBuffer() का उपयोग करते समय, हम कुछ ऐसा याद करते हैं जो createBitmap() विधि हमें नहीं दे सका। – Hexor