所以我有一个32位深度的图像,但是当我将其放入SQLite数据库的Blob中并用以下代码再次读出时,它只有24位深度(质量较低,我希望它品质相同)。如何获得32位深度? :
DatabaseHandler db = new DatabaseHandler(camera.this);
List<Database> contacts = db.getAllContacts();
for (Database contact : contacts) {
BitmapFactory.Options bmpFactoryOptions = new BitmapFactory.Options();
bmpFactoryOptions.inPreferredConfig = Bitmap.Config.ARGB_8888;
//bmpFactoryOptions.inScaled = false;
bmpFactoryOptions.outHeight = 240;
bmpFactoryOptions.outWidth = 320;
// decodes the blob back into a bitmap
byte[] blob = contact.getMP();
ByteArrayInputStream inputStream = new ByteArrayInputStream(blob);
Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
Bitmap scalen = Bitmap.createScaledBitmap(bitmap, 320, 240, false);
编码源是
Bitmap image15 = BitmapFactory.decodeResource(getResources(),R.drawable.wolverineklein);
// convert bitmap to byte
ByteArrayOutputStream stream = new ByteArrayOutputStream();
image15.compress(Bitmap.CompressFormat.JPEG, 100, stream);
byte imageInByte1[] = stream.toByteArray();
最佳答案
Android上没有24位深度的东西。位图可以是8位(仅ALPHA 8格式半透明或调色板格式为空配置),16位(无半透明的565 RGB格式或具有半透明的4444 RGBA格式)或32位(具有半透明的8888 RGBA格式)。
更新:这只是意味着您没有Alpha通道。在两种情况下,颜色都是使用24位编码的。