我在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;
}
答案 0 :(得分:0)
我有同样的问题。似乎与png文件中指定的“颜色配置文件”有关的问题。只需使用Gimp打开文件并将其导出即可解决该问题。