span8
span4
这是我第一次真正接触栅格数据,所以我的知识相当基础。
我想做的是转换光栅矢量使用Potrace和PotraceCaller。栅格是8位PNG的,见附件。
在PotraceCaller中,光栅被写入BMP。BMP是由Potrace转换成DXF的命令行。正在读取DXF,应用世界文件。
这工作得很好,但不是所有的光栅。当运行工作区时,会出现以下警告:
| 0.5| 0.0|警告|BMP写入器:不支持的调色板值解释‘RGBA32’。转换为解释“RGB24”。如果不希望进行这种转换,请考虑显式地更改解释2019-02-06 12:11:52| 0.5| 0.0|WARN |@ reinterpretation traster:将一些波段/调色板解释从“RGBA32”转换为“RGB24”可能会导致数据丢失
我认为要理解调色板是栅格中使用的所有变化的概述。
转换成功的光栅有以下调色板:
RGBA32 0 255,255,255,0 1 150,0 0 255 2 150,0 0 255
未成功转换的光栅有以下调色板:
RGBA32 0 255,255,255,0 1 255,215,80,255 2 255,215,80,255
我认为0 255,255,255,0是随机背景。其他值不是transparant(第4位255)颜色。
我首先尝试的是使用RasterPaletteInterpretationCoercer将RGBA32转换为RGB24。
我认为由于某些原因255,215,80,255是一个不可处理的颜色,而150,0,0,255可以。因此,我现在的解决方法是提取调色板,用150、0、0 255替换每个值,删除原来的调色板,添加新调色板并处理光栅。这已经足够好了,但我遇到了其他问题。
我的问题是,为什么255,215,80,255没有被处理而150 0,0,255处理得很好,我怎么在栅格中改变它?
感谢您的时间!
BMP格式只支持存储RGB24图像光栅,因此如果您将RGBA32光栅发送到BMP光栅,结果可能是意外的。
如果您使用RasterPaletteResolver解析调色板,并使用RasterSelector + RasterBandRemover删除第四个波段,会发生什么情况?
谢谢你的建议@高石。这有助于我理解这些工具是如何工作的。(公开波段,选择一个波段,然后更改它。)现在我阅读了文档,我更好地理解了它的含义。
我认为红色区域中的255值是问题所在,因为nodata标识符是255。
我的解决方案:
rasterpaletersolver将值从调色板带到标注栏。
rasterbandnodeataremover删除nodata标识符。
RasterExpressionEvaluator(设置并仅保留red8=0,其中alpha带为255,否则为255)
rasterbandnodedatasetter(将nodata标识符还原为255)
今天学到了很多。
位图初学者指南是学习RasterData工作原理的一个很好的开端。
©2019安全亚搏在线软件公司法律