使用 png8 而不是 png24 作为 RGB 高度图
Use png8 instead of png24 as RGB height map
我有一个 1 波段 DEM geotiff,以及一个转换高度的公式 -> RGB 和 RGB -> 高度(类似这样:https://docs.mapbox.com/help/troubleshooting/access-elevation-data)。
使用公式(和 GDAL/Python),我将我的 geotiff 转换为 3 波段(R、G 和 B)geotiff,每个波段的值都在 0-255 范围内。
使用 mapnik / mod_tile,然后我将我的 geotiff 作为 PNG 图块提供给网络客户端。如果我设置 mod_tile 将图块作为 24 位或 32 位 PNG 提供,一切都很好。但是,如果我将它们作为 8 位 PNG 提供(以减小它们的大小),那么解码值会有点偏差(在查看图像时我看不出差异,但 RGB 值并不完全相同,因此弄乱了我的解码高度)。
我是否期望能够使用 8 位 PNG 而不是 24/32 来做我想做的事情(检索确切的 RGB 值),或者我对 8 位 PNG 有一些不理解的地方(如果是这样,我将不得不深入研究 mod_tile 代码,我想当我们询问 8 位时,它会生成 24 或 32 然后压缩)?
不,您期望可以将任何 24 位值的集合无损压缩为 8 位值是不对的。如果原始文件中有超过 256 个不同的 24 位值,那么其中一些不同的值必然会映射到相同的 8 位值。
我有一个 1 波段 DEM geotiff,以及一个转换高度的公式 -> RGB 和 RGB -> 高度(类似这样:https://docs.mapbox.com/help/troubleshooting/access-elevation-data)。
使用公式(和 GDAL/Python),我将我的 geotiff 转换为 3 波段(R、G 和 B)geotiff,每个波段的值都在 0-255 范围内。
使用 mapnik / mod_tile,然后我将我的 geotiff 作为 PNG 图块提供给网络客户端。如果我设置 mod_tile 将图块作为 24 位或 32 位 PNG 提供,一切都很好。但是,如果我将它们作为 8 位 PNG 提供(以减小它们的大小),那么解码值会有点偏差(在查看图像时我看不出差异,但 RGB 值并不完全相同,因此弄乱了我的解码高度)。
我是否期望能够使用 8 位 PNG 而不是 24/32 来做我想做的事情(检索确切的 RGB 值),或者我对 8 位 PNG 有一些不理解的地方(如果是这样,我将不得不深入研究 mod_tile 代码,我想当我们询问 8 位时,它会生成 24 或 32 然后压缩)?
不,您期望可以将任何 24 位值的集合无损压缩为 8 位值是不对的。如果原始文件中有超过 256 个不同的 24 位值,那么其中一些不同的值必然会映射到相同的 8 位值。