H-B*_*ami -1 c++ java image-processing run-length-encoding
我知道Java byte范围是-128到127,但C++ BYTE是unsigned char(0到255).
我想将C++函数转换为Java,而在C++中我有一个LPBYTE(它是指向BYTE数组的指针.)我尝试使用byte数组而不是LPBYTEC++函数,但我的Java函数仍然无法正常工作.
我的C++函数适用于BMP文件,它的算法是自定义的运行长度编码.在将其转换为Java时,我正在使用a BufferedImage并将其内容作为byte[].我猜测由于类型不匹配,Java函数无法正常工作.
我应该在Java中使用哪种类型?
在Java中,您可以使用plain byte并int根据需要转换为b & 0xFF
您遇到的问题是Java不支持指针,您无法将指向字节的指针传递给Java.最近的等价物是byte[].
如果您只进行RLE编码,则字节的实际值并不重要,因此它们是有符号还是无符号无关紧要.如果要解码BMP文件,可以根据需要使用上面的掩码.
读/写字节数组时,常见的解决方案是使用ByteBuffer.这支持编写更长的类型,例如short或int以小端或大端顺序编写,您无需事先知道确切的长度.
| 归档时间: |
|
| 查看次数: |
3951 次 |
| 最近记录: |