Image 黑白图像的1位RLE(游程编码)

Image 黑白图像的1位RLE(游程编码),image,encoding,binary,run-length-encoding,Image,Encoding,Binary,Run Length Encoding,我想为Anycubic光子打印机构建一个自定义3D切片器。为此,我需要以1位RLE格式对每个切片(图像)数据进行编码。查看Anycubics切片器生成的文件,我看到黑色像素组具有十六进制值0x7D 正如我所理解的1位RLE编码,每个字节的第一位是颜色,其他7位是具有相同颜色的以下像素数。我希望一组127个黑色像素的二进制值为b01111111,十六进制值为0x7F(127)。谁能告诉我我做错了什么吗?我知道了。我希望光子切片器将最大数量的像素分组为相同颜色,因此对于127像素,将使用二进制值b

我想为Anycubic光子打印机构建一个自定义3D切片器。为此,我需要以1位RLE格式对每个切片(图像)数据进行编码。查看Anycubics切片器生成的文件,我看到黑色像素组具有十六进制值0x7D


正如我所理解的1位RLE编码,每个字节的第一位是颜色,其他7位是具有相同颜色的以下像素数。我希望一组127个黑色像素的二进制值为b01111111,十六进制值为0x7F(127)。谁能告诉我我做错了什么吗?

我知道了。我希望光子切片器将最大数量的像素分组为相同颜色,因此对于127像素,将使用二进制值b 01111 1111。事实证明,光子切片器将每个groupsize最大化为一个较低的值(因此b 01111 1101)。我不知道为什么光子切片器会这样做,但是使用标准解码我可以正确地提取图像。

您当前的结果是什么?错误消息、无输出等?您是从哪里知道它应该是什么样子的?其他像素组看起来如何?总的来说,您的主要问题是您必须查看发送到打印机的0111111类型的输入是否实际工作。请注意,有些RLE算法在每一行像素上工作,并且从来没有重复到下一行。这可以解释这样的截止线。