Go 无法将图像转换到[]uint8

Go 无法将图像转换到[]uint8,go,Go,如何从图像中提取原始[]uint8?根据定义,8位整数的大小为8位或1字节 编辑以删除错误信息,我将在下面转发给后代 输出的字符串表示不是每个数字一个字符,而是几个字符,例如,首先列出的int-65,由三个字符表示,即6、5和空格。这将使预期大小增加三倍,从300k增加到900k 至于其余的,我认为,正如评论中所说,图像压缩可能是罪魁祸首 作为我回答的一部分,我最初发布的无关信息是: Go有两种字符类型,字节和符文。用于存储字符的字节的大小与用于存储整数的字节的大小相同-两者都是8位。但是作为符

如何从图像中提取原始[]uint8?

根据定义,8位整数的大小为8位或1字节

编辑以删除错误信息,我将在下面转发给后代

输出的字符串表示不是每个数字一个字符,而是几个字符,例如,首先列出的int-65,由三个字符表示,即6、5和空格。这将使预期大小增加三倍,从300k增加到900k

至于其余的,我认为,正如评论中所说,图像压缩可能是罪魁祸首

作为我回答的一部分,我最初发布的无关信息是:

Go有两种字符类型,字节和符文。用于存储字符的字节的大小与用于存储整数的字节的大小相同-两者都是8位。但是作为符文存储的字符将是32位,请参见。所以,如果写出来的字符是符文,这可以解释为什么大小增加了四倍,因为32/8=4


您希望输出的大小是什么?我不确定输出的大小应该是什么,但是对于一张只有几百KB的图片,30 MB的输出[]uint8似乎太大了。800万像素的图像(例如4000x2000)压缩成300 KB JPEG并非不可能,这取决于压缩级别。举个例子,每个800万像素有3个字节的RGB,结果是2400万字节=>24MB。如果有alpha通道,则为32MB。我在这里看不到任何不寻常的地方。另外,如果源不是照片,而是生成的图像,如果它有相同像素的宽区域,例如PNG格式可以使它非常小,但是如果你解码它,它将有相同数量的像素,,,代码将数据字节转换为以空格分隔的十进制值。这是你的实际目标,还是你打算按原样将字节写入文件?是的,其余的都是对的,关于符文的东西是一个骗局。