Переверните изображение, хранящееся в виде массива byte[]

У меня есть изображение, которое хранится как массив byte [], и я хочу перевернуть изображение, прежде чем отправить его для обработки в другом месте (как массив byte []).

Я искал вокруг и не могу найти простое решение, не манипулируя каждым битом в массиве byte [].

Как насчет преобразования массива байтов[] в какой-то тип изображения, листая его с помощью существующего метода флипа, а затем преобразуя его обратно в массив байтов []?

любой совет?

Ура!

1 ответов


массив байтов в растровое изображение:

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();