从png android读取像素值

时间:2017-02-01 08:16:09

标签: android

我正在阅读png以使用以下代码

提取像素RGB
String filePath="map.png";

InputStream instream;


try {
        instream = assetManager.open(filePath);
        bMap = BitmapFactory.decodeStream(istr);


} catch (IOException e) {
      // handle exception
}   

代码工作正常但是当png转换为BitMap时,bmap对象的大小太大(png = 700kb,bmap = 30MB +),因此应用程序崩溃。

有没有办法避免将png加载为BitmapFactory并仍然提取像素RGB。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

感谢每一个人的评论。

我终于通过使用其他技术解决了这个问题。问题是我的png大小太大,因此在转换为Bitmap时,应用程序崩溃了。 png是地图的一部分(app显示地图),因此也在地图上显示。所以我做了以下

  1. 当用户点击地图时,我将纬度和经度转换为像素xy
  2. 我没有将整个png转换为Bitmap,而是拍摄了屏幕截图。
  3. 我将屏幕短图像转换为位图并在xy位置提取像素值。
  4. 由于屏幕短图像比完整的png小得多,因此解决方案工作正常。

    感谢每一位人士的帮助。