【问题标题】:imagemagick produces undesired output imageimagemagick 产生不想要的输出图像
【发布时间】:2019-08-03 16:34:18
【问题描述】:

我正在运行 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 上。

【问题讨论】:

  • 我要做的第一件事是尝试另存为 png 以查看 jpg 压缩是否是问题
  • 我会试一试,告诉你进展如何
  • 使用版本 7 时,您应该只需要 magick 而不需要 magick convert。我相信如果您使用 magick convert,它会调用 V6 旧版本而不是 V7。

标签: imagemagick


【解决方案1】:

您没有确定您的 Imagemagick 版本。

这对我来说在 IM 7.0.8.58 Q16 Mac OSX 上运行良好。

注意 IM 7,使用 magick,而不是 magick convert,而不是简单的 convert。

文件 - 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)


这也是正确的。

【讨论】:

  • magick text.txt text2.txt 到底是做什么的?你的意思是magick text.txt image.jpg
  • 该命令获取一个 .txt 图像并将其读取为 miff 格式,然后将 miff 写回另一个 .txt 输出文件。请参阅我对答案的补充。
猜你喜欢
  • 2011-05-10
  • 2021-09-05
  • 2015-09-20
  • 1970-01-01
  • 2021-04-07
  • 1970-01-01
  • 1970-01-01
  • 2015-04-24
相关资源
最近更新 更多