В Android Studio я могу использовать следующие строки кода для получения массива из растрового изображения
Bitmap bitmap = get_Image();
Bitmap resizeBitmap = getResizedBitmap(bitmap);
int[] iArr = new int[(resizeBitmap.getWidth() * resizeBitmap.getHeight())];
resizeBitmap.getPixels(iArr, 0, resizeBitmap.getWidth(), 0, 0, resizeBitmap.getWidth(), resizeBitmap.getHeight());
Вот функция изменения размера:
public Bitmap getResizedBitmap(Bitmap bitmap) {
if (576 == bitmap.getWidth() && 1024 == bitmap.getHeight()) {
return bitmap;
}
Bitmap createBitmap = Bitmap.createBitmap(576, 1024, Config.RGB_565);
Matrix scaledMatrix = scaledMatrix(bitmap.getWidth(), bitmap.getHeight(), createBitmap.getWidth(), createBitmap.getHeight());
new Canvas(createBitmap).drawBitmap(bitmap, scaledMatrix, null);
return createBitmap;
}
Однако, когда я конвертирую этот intмассив обратно в растровое изображение изображение неверно
Bitmap bmp = Bitmap.createBitmap(1024, 576, Config.RGB_565);
bmp.setPixels(iArr, 0, 1024, 0, 0, 1024, 576);
textViewToChange.setText("Bitmap created");
Это изображение, когда я сохраняю его в файл или отображаю его https://imgur.com/a/ZQ0DJAy Изображение выше, как оно выглядит, и ниже, как оноЕсли бы я выглядел как
Если я прочитал неправильное изображение в Python, пиксели RGB располагаются точно так, как они должны быть на правильном изображении, но изображение не выглядит так же.Зачем?Как я могу это исправить?