Декодировать массив байтов в растровое изображение, сжатое в Java

Я сжимаю растровое изображение следующим образом

Bitmap bmpSig = getMyBitMap(); int size = bmpSig.getWidth() * bmpSig.getHeight(); ByteArrayOutputStream out = new ByteArrayOutputStream(size); bmpSig.compress(Bitmap.CompressFormat.JPEG, 100, out); byte[] bytSig = out.toByteArray(); 

Затем я пытаюсь отобразить изображение в Android ImageView из массива байтов. Когда я делаю это, я получаю изображение, полностью черное изображение.

 ImageView myImg = (ImageView) findViewById(R.id.img_view); myImg.setImageBitmap(BitmapFactory.decodeByteArray(bytSig, 0, bytSig.length)); 

Я предполагаю, что это потому, что я пропускаю шаг перед BitmapFactory.decodeByteArray (), чтобы отменить сжатие jpeg. Или я неправильно понял, как работает сжатие?

Solutions Collecting From Web of "Декодировать массив байтов в растровое изображение, сжатое в Java"

Я не понимал, что фон моего растрового изображения (из объекта Canvas) был прозрачным. Так как это растровое изображение – это просто черные линии на белом фоне, черное изображение связано с сжатием в JPEG, придающим изображению черный фон.

я изменился

 bmpSig.compress(Bitmap.CompressFormat.JPEG, 100, out); 

в

 bmpSig.compress(Bitmap.CompressFormat.PNG, 100, out); 

И он работает так, как ожидалось.