如何在android中获得PNG的确切颜色?

时间:2016-12-09 03:57:55

标签: android png bitmapfactory

我在3d地图上工作。将高程数据保存为png。 但是当在android中解码PNG时,我无法获得确切的颜色。 例如。像素(100,50)具有RGB(100,10,100)颜色。我得到RGB(101,11,99)这样的颜色,这是我的高程数据PNG 123.207.115.60/N22E106/5_4.png

我的代码如下:

public int[] GetPixelsFromPNG(byte[] PNGData, int dataLen, int wh)
    {
        BitmapFactory.Options opt;
        opt = new BitmapFactory.Options();
        //opt.inPreferQualityOverSpeed = false;
        opt.inDither=true;
        opt.inPreferredConfig = Bitmap.Config.ARGB_8888;
        Bitmap bitmap = BitmapFactory.decodeByteArrayPNGData, 0, dataLen,opt);

        int width = bitmap.getWidth();
        int height = bitmap.getHeight();

        int pixels[] = new int[width * height];
        bitmap.getPixels(pixels, 0, width, 0, 0, width, height);
        return pixels;
    }

1 个答案:

答案 0 :(得分:0)

我有同样的问题。似乎与png文件中指定的“颜色配置文件”有关的问题。只需使用Gimp打开文件并将其导出即可解决该问题。