flip图像存储为byte[]数组

kfgdxczn  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(291)

我有一个存储为byte[]数组的图像,我想在将其发送到其他地方进行处理(作为byte[]数组)之前翻转该图像。
我四处搜索,如果不操纵byte[]数组中的每一位,就找不到简单的解决方案。
如何将byte array[]转换为某种图像类型,使用现有的flip方法将其翻转,然后将其转换回byte[]数组?
有什么建议吗?
干杯!

3qpi33ja

3qpi33ja1#

字节数组到位图:

Bitmap bmp = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);

通过提供直角(180),使用此选项旋转图像:

public Bitmap rotateImage(int angle, Bitmap bitmapSrc) {
    Matrix matrix = new Matrix();
    matrix.postRotate(angle);
    return Bitmap.createBitmap(bitmapSrc, 0, 0, 
        bitmapSrc.getWidth(), bitmapSrc.getHeight(), matrix, true);
}

然后回到数组:

ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] flippedImageByteArray = stream.toByteArray();

相关问题