我如何正确地将整数转换回位图

时间:2018-12-19 03:29:42

标签: android android-studio image-processing

在Android Studio中,我可以使用以下代码行从Bitmap获取数组

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像素会准确地放置在正确图像中应放置的位置,但是图像看起来并不相同。为什么?我该如何解决?

0 个答案:

没有答案