我需要从XML文件中提取图像数据,并将图像作为单独的文件输出。在
我已经处理了解析,但是我不知道如何转换为图像。在
XML如下所示:
<Bitmap>
<BitmapInfo BitWidth="40" BitHeight="40" ByteWidth="8" BitCount="1" ColorCount="2" Compression="true">
<ColorTable>
<Color>0</Color>
<Color>16777215</Color>
</ColorTable>
<BitData>Af5/+/8B/h/7/wH+B/v/Af4B+/8C/gB//P8C/gAf/P8C/gAH/P8C/gAB/P8D/gAAf/3/A/4AAB/9/wP+AAAH/f8D/gAAAf3/AP7+AAB//v8A/v4AAB/+/wD+/gAAB/7/AP7+AAAD/v8A/v4AAAf+/wD+/gAAH/7/AP7+AAB//v8D/gAAAf3/A/4AAAf9/wP+AAAf/f8D/gAAf/3/Av4AAfz/Av4AB/z/Av4AH/z/Av4Af/z/Af4B+/8B/gf7/wH+H/v/Af5/s/8=</BitData>
</BitmapInfo>
<Area Left="4430000" Top="12690000" Right="4563333" Bottom="12823333" />
</Bitmap>
另一个例子:
^{pr2}$关于如何做这件事的任何建议都会有帮助。在
在Java中,使用javax.imageio,您可以这样做:
您需要转换颜色表以提取RGB值。这些值看起来像是没有alpha的每个通道的8位RGB值。方法可能看起来像
^{pr2}$此外,还需要实现对数据进行解码和解压缩的方法,以及从未压缩数据中获取特定位置的值(颜色索引)的方法。在
如果您没有任何文档,那么uncompress方法尤其需要一些逆向工程。看看这两个例子中的解码数据,很可能是某个使用字节宽度的游程编码值。有几个RLE variants,我无法导出对我来说有意义的图像数据,但我对图像数据的意图一无所知,因此我可能无法识别正确的未压缩数据。在
在第一个例子中,我意识到数据的长度是1600位。如果图像的宽度和高度分别为40,颜色深度为1位,那么即使XML声明要压缩图像,也可以对其进行解压缩。在
相关问题 更多 >
编程相关推荐