【问题标题】:Is there support in android for indexed png files -- especially 16-bit png files?android 中是否支持索引 png 文件——尤其是 16 位 png 文件?
【发布时间】:2012-10-18 06:14:20
【问题描述】:

我将地形数据存储为 16 位 png 文件。我想应用一个颜色表,将高度映射到要在地图上绘制的颜色。 (是的,我知道该表将有 65536 个条目)。

Android 是否支持此功能,或者我是否必须在加载数据时将数据转换为 RGB?或者找到适用于 Android 的 libpng 版本?还是自己建?

编辑:正确; png 文件中没有颜色表;我在加载图像时在软件中生成它。

我想表达我的问题的更好方法是:有没有办法通过查找表映射 16 位整数的位图以生成新的 RGB 位图?还是我需要自己动手?

【问题讨论】:

  • FWIW,我确实找到了github.com/julienr/libpng-android
  • this answer 适合您吗?您可以通过位移从解压缩的像素颜色中提取值。
  • 据我所知,没有 16 位索引 png 这样的东西,索引 png 最大为 8 位(256 色)。我猜你的意思是 16 位灰度(1 通道)png,但它没有颜色图,所以无论如何你必须转换图像。
  • Geobits -- 是的,这个答案是我在搜索时发现的第一件事。我希望有比滚动我自己的循环更快的东西。

标签: android png


【解决方案1】:

没有 16 位索引 PNG 格式,因此我想您要做的是加载 16 位灰度 PNG 并使用 64Kb 颜色表以伪彩色显示它。这实际上意味着您需要进行 16 位灰度到 24 位 RGB 的转换(或者可能是 RGB_565)。这与 PNG 关系不大,因此“为 Android 找到一个 libpng 版本”并没有多大帮助,您仍然需要自己进行转换(在 PNG 解码之后)。如果您担心进行转换会浪费更少的内存,我建议您看看我的PNGJ 库。

【讨论】:

  • 啊,你可能是对的。出于某种原因,我认为 libpng 有办法将颜色表应用于 16 位数据。
  • 附注我刚刚看了你的代码;干得好。我对性能问题比对空间更感兴趣,但我也许可以利用它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-15
  • 2010-10-14
  • 2016-02-18
  • 1970-01-01
  • 2015-12-13
  • 2017-05-25
相关资源
最近更新 更多