我使用下面的代碼從我的SQLite數據庫中獲取一個Blob,並取回一個位圖。我的問題是重建的位圖比原始圖片(輸入)大。似乎我的BitmapFactory.Options不起作用,但我不知道什麼是錯誤的,也不會收到錯誤。這段代碼有什麼問題?bmpFactoryOptions不工作,不知道爲什麼
byte[] blob = contact.getMP();
ByteArrayInputStream inputStream = new ByteArrayInputStream(blob);
BitmapFactory.Options bmpFactoryOptions = new BitmapFactory.Options();
bmpFactoryOptions.inPreferredConfig = Bitmap.Config.ARGB_8888;
bmpFactoryOptions.inScaled = false;
bmpFactoryOptions.outHeight = 240;
bmpFactoryOptions.outWidth = 320;
Bitmap bitmap = BitmapFactory.decodeStream(inputStream, null, bmpFactoryOptions);
try {
FileOutputStream out = new FileOutputStream("mnt/sdcard/test5.png"); bitmap.compress(Bitmap.CompressFormat.PNG, 100, out);
} catch (Exception e) {
e.printStackTrace();
}
當我檢查我的輸出320×240像素爲427 X 320。我不希望,因爲它打亂了質量使用Bitmap.createScaledBitmap。
?在這段代碼中,我沒有看到它。 – Simon
它應該被用在blob上,該blob被改爲位圖(代碼的最後一行)。 – user1393500
但是您沒有將選項作爲參數傳遞。黑帶已經顯示出正確的簽名。 http://developer.android.com/reference/android/graphics/BitmapFactory.html#decodeStream(java.io.InputStream,android.graphics.Rect,android.graphics.BitmapFactory.Options) – Simon