从字节数组中裁剪图像

时间:2012-12-28 10:28:42

标签: android bitmap bytearray

我的应用程序允许用户使用相机拍照并返回包含图像数据的字节数组(此时为jpeg但可以修改)。

如果我们知道图片的宽度和高度,是否可以使用

BitmapFactory.decodeByteArray(data, offset, length)

要从指定的偏移量解码图像以获得平方图像?

图像处于高分辨率(肖像),我只需要此图像的平方底部仍处于高分辨率下进行图像处理。

x offset = 0
y offset = height - width
width = width
height = width

我看过this回答,但我仍然想知道这是否可行。如果需要,我可以使用其他格式压缩图像数据

我的猜测是计算用于存储n像素行的字节数(使用已知尺寸),其中n = maxRows - pictureWidth

然后从计算偏移量

开始

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:0)

首先解码为小尺寸

BitmapFactory.Options opt = new BitmapFactory.Options();
    opt.inSampleSize = 4;  //inSampleSize == 4 returns an image that is 1/4 the width/height of the original, and 1/16 the number of pixels

BitmapFactory.decodeByteArray(data, offset, length, opt)

然后

bitMap1 = Bitmap.createScaledBitmap(bitMap, width, height, true);

试试这个