imagemagick产生不需要的输出图像

时间:2019-08-03 16:34:18

标签: imagemagick

我正在运行ImageMagick 7.0.8-27 Q16 x64。我有一个文本文件text.txt,其像素信息的格式正确,可以与imagemagick一起使用。文本文件的前五行如下:

# ImageMagick pixel enumeration: 4960,4960,65535,srgb
0,0:    (65278,65278,65278) #FEFEFE srgb(254,254,254)
1,0:    (65278,65278,65278) #FEFEFE srgb(254,254,254)
2,0:    (65278,65278,65278) #FEFEFE srgb(254,254,254)
3,0:    (65278,65278,65278) #FEFEFE srgb(254,254,254)

我希望能够将文本文件转换为图像,但似乎输出的图像不正确。从命令行运行时

magick convert text.txt image.jpg

我得到一张图像,但没有我想要的图像。为了确认imagemagick确实给了我不好的印象,我跑步

magick convert image.jpg text2.txt

令我惊讶的是,此文本文件text2.txt与用于生成图像的原始文件text.txt不同。前五行如下:

# ImageMagick pixel enumeration: 4960,4960,65535,srgb
0,0: (65278,65278,65535)  #FEFEFF  srgb(254,254,255)
1,0: (65278,65278,65535)  #FEFEFF  srgb(254,254,255)
2,0: (65278,65278,65535)  #FEFEFF  srgb(254,254,255)
3,0: (65278,65278,65535)  #FEFEFF  srgb(254,254,255)

为什么imagemagick在创建图像时会弄乱像素信息?我在Windows 8.1上。

1 个答案:

答案 0 :(得分:0)

您没有识别出Imagemagick的版本。

这对我来说在IM 7.0.8.58 Q16 Mac OSX上正常运行。

IM 7的注释,使用magick,而不是magick转换,而不仅仅是转换。

文件-text.txt

# ImageMagick pixel enumeration: 4,1,65535,srgb
0,0:    (65278,65278,65278) #FEFEFE srgb(254,254,254)
1,0:    (65278,65278,65278) #FEFEFE srgb(254,254,254)
2,0:    (65278,65278,65278) #FEFEFE srgb(254,254,254)
3,0:    (65278,65278,65278) #FEFEFE srgb(254,254,254)


magick text.txt text2.txt

magick TXT:text.txt TXT:text2.txt


文件-text2.txt

# ImageMagick pixel enumeration: 4,1,65535,srgb
0,0: (65278,65278,65278)  #FEFEFEFEFEFE  srgb(254,254,254)
1,0: (65278,65278,65278)  #FEFEFEFEFEFE  srgb(254,254,254)
2,0: (65278,65278,65278)  #FEFEFEFEFEFE  srgb(254,254,254)
3,0: (65278,65278,65278)  #FEFEFEFEFEFE  srgb(254,254,254)


您的问题是您将txt文件保存为JPG。 JPG是一种有损压缩格式,会由于压缩和丢失而更改像素值。请尝试保存为PNG或TIFF(或任何其他无损压缩格式)。然后再次将其转换为.txt。这就是Bonzo用户的建议。

例如:

magick text.txt text.png
magick text.png text2.txt


产生text2.txt为

# ImageMagick pixel enumeration: 4,1,65535,gray
0,0: (65278)  #FEFEFE  gray(254)
1,0: (65278)  #FEFEFE  gray(254)
2,0: (65278)  #FEFEFE  gray(254)
3,0: (65278)  #FEFEFE  gray(254)


这也是正确的。