0
Я пытался обрезать изображение из растрового изображения с использованием YuvImage, как это:Обрезок прямоугольной области от bitmao использования YuvImage производит странный результат
Bitmap bitmap=params[0];
ByteArrayOutputStream bos=new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, bos);
byte[] data=bos.toByteArray();
//bos=null;
YuvImage yuvImage=new YuvImage(data, ImageFormat.NV21, bitmap.getWidth(), bitmap.getHeight(),null);
bos=new ByteArrayOutputStream();
boolean isCropped=yuvImage.compressToJpeg(rect, 100, bos);
if(isCropped)
data=bos.toByteArray();
bitmap=BitmapFactory.decodeByteArray(data, 0, data.length);
return bitmap;
Это приводит к тому, результирующему изображению
Есть альтернативный подход чтобы обрезать и сохранить изображение без использования Intent
.
Как преобразовать YuvImage в растровое изображение или показать его в ImageView? – vamsiampolu
@ user2309862 Я не думаю, что для этого есть функция удобства. Полагаю, вы можете искать и использовать какой-то открытый код. – auselen
Могу ли я использовать Bitmap.CompressFormat.JPEG с YUVImage ... – vamsiampolu