【问题标题】:read pixel value from png android从png android读取像素值
【发布时间】:2018-01-22 22:36:33
【问题描述】:

我正在阅读 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。

感谢您的帮助。

【问题讨论】:

  • 您可以使用 Glide/Picasso 库来加载大图像。
  • 你可以使用 picasso 或者在 Asynctask 中编写这段代码
  • 感谢您的帮助

标签: android


【解决方案1】:

感谢每一位cmets。

我终于设法通过使用其他技术来解决它。问题是我的 png 尺寸太大,因此当转换为位图时,应用程序崩溃了。 png 是地图的一部分(应用程序显示地图),因此也显示在地图上。所以我做了以下

  1. 当用户点击地图时,我将经纬度转换为像素 xy
  2. 我没有将整个 png 转换为位图,而是截取屏幕截图。
  3. 我将屏幕短图像转换为位图并在 xy 位置提取像素值。

由于屏幕短图像比完整的 png 小得多,因此该解决方案运行良好。

感谢大家的帮助。

【讨论】:

    猜你喜欢
    • 2011-05-22
    • 2018-05-04
    • 2011-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-12
    • 2016-05-18
    • 2014-07-16
    相关资源
    最近更新 更多