首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将RGB值的文本文件转换为png文件?

如何将RGB值的文本文件转换为png文件?
EN

Stack Overflow用户
提问于 2017-10-07 09:49:22
回答 1查看 5.4K关注 0票数 0

问题陈述:

使用ImageMagick,我可以:

convert a.png a.txt

这给了我:

代码语言:javascript
运行
复制
# ImageMagick pixel enumeration: 297,239,255,srgba
0,0: (255,255,255,1)  #FFFFFF  white
1,0: (255,255,255,1)  #FFFFFF  white
2,0: (255,255,255,1)  #FFFFFF  white
3,0: (255,255,255,1)  #FFFFFF  white
...

我还希望能够从文本文件返回到png。我该怎么做?我很乐意使用任何linux命令行工具、编程语言库等。

上下文:

我使用ImageMagick工具将原始图像的像素值解析为Q(我正在使用的语言)。然后,我对它们进行了转换,现在希望保存与新像素值相对应的图像。使用q可以轻松地以所需的任何文本格式保存rgb值。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-07 09:53:38

它的工作原理是相同的:

代码语言:javascript
运行
复制
# Image to text
convert image.png image.txt

# Text to image
convert image.txt andBack.png

也许最好写一个NetPBM文件-所以PGM (P5)是灰度的,PPM (P6)是彩色的。该格式非常简单,并描述了这里

有几种被称为P1通过P6的变体。P1很少被使用,只是单一的和低效的。P2是灰度的,ASCII (人类可读的)和P5是相同的,但是二进制,因此更紧凑。P3是彩色的,ASCII (人类可读的)和P6是一样的,但是是二进制的,因此更紧凑。

这里是一个4x4白色(255)矩形,宽1像素,中间灰色(127)边框,形成6x6 PGM

代码语言:javascript
运行
复制
P2
6 6
255
127 127 127 127 127 127 
127 255 255 255 255 127 
127 255 255 255 255 127 
127 255 255 255 255 127 
127 255 255 255 255 127 
127 127 127 127 127 127

下面是一个颜色PPM,它对应3x1行RGB像素:

代码语言:javascript
运行
复制
P3
3 1
255
255 0 0
0 255 0
0 0 255

然后,您可以使用ImageMagick将其转换回ImageMagick

代码语言:javascript
运行
复制
convert image.ppm image.png
convert image.pgm image.png

您还可以将原始二进制字节按RGB、RGB、RGB顺序写入文件,然后使用ImageMagick将其转换为PNG,如下所示:

代码语言:javascript
运行
复制
convert -size 1024x768 RGB:data.bin image.png

或用于灰度:

代码语言:javascript
运行
复制
convert -size 1024x768 GRAY:data.bin image.png

虽然这会稍微小一些,但它不再像PGM/PPM文件那样自我包含,意味着您必须单独携带大小才能将数据拿回来,所以我会选择PGM/PPM版本,因为有3行标题。

请注意,您还可以使用重量更轻的ImageMagick. NetPBM 工具(或libvipsGIMP或其他工具)在NetPBM和PNG格式之间进行上述所有转换,而不是使用

例如,使用NetPBM将PPM转换为PNG

代码语言:javascript
运行
复制
pnmtopng a.ppm > result.png
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46618837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档