Переверните изображение, хранящееся в виде массива 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();