Imagemagick深度转换

时间:2014-07-10 18:36:37

标签: image image-processing imagemagick

有一个行李in.png。现在做下一个:

$ convert in.png -strip out.tiff     #convert to tiff
$ convert out.tiff -strip out.png    #and back
$ cmp in.png out.png
$#no output - the images has no difference - theyre same

$ identify in.png out.png
in.png PNG 300x300 300x300+0+0 16-bit sRGB 1.65KB 0.000u 0:00.000
out.png[1] PNG 300x300 300x300+0+0 16-bit sRGB 1.65KB 0.000u 0:00.000

现在通过eps尝试此操作。所以:

$ convert in.png -strip out2.eps        #convert to eps
$ convert out2.eps -strip out2.png      #back

并且图像不同。

$ identify in.png out.png out2.png
in.png PNG 300x300 300x300+0+0 16-bit sRGB 1.65KB 0.000u 0:00.000
out.png[1] PNG 300x300 300x300+0+0 16-bit sRGB 1.65KB 0.000u 0:00.000
out2.png[2] PNG 300x300 300x300+0+0 8-bit sRGB 4c 321B 0.000u 0:00.009

如您所见,转换eps - > png创建8位png。

好奇心加 - EPS是16位!

$ identify out2.eps 
out2.eps PS 300x300 300x300+0+0 16-bit sRGB 1.42KB 0.000u 0:00.000

问题:

  • 为什么eps->png转换会改变位深度?
  • 如何从eps转换为png以获得16位png? (来自tiff)。

修改

经过测试@Rachel推荐:

$ convert out2.eps -depth 16 out3.png
$ identify out3.png 
out3.png PNG 300x300 300x300+0+0 8-bit sRGB 4c 518B 0.000u 0:00.000
再次8位。

我的ImageMagick版本:

$ convert --version
Version: ImageMagick 6.8.9-1 Q16 x86_64 2014-06-01 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2014 ImageMagick Studio LLC
Features: DPC Modules
Delegates: bzlib djvu fftw fontconfig freetype gslib gvc jng jp2 jpeg lcms ltdl lzma pangocairo png ps tiff webp wmf x xml zlib

如果有人想要测试,这是我的测试图像:

test image

FINAL

所以,@ Mark Setchell和@Rachel Gallen的推荐很好。 @Marks命令有效,所以键是PNG48。

$ convert out2.eps -depth 16 PNG48:out7.png
$ identify out7.png
out7.png PNG 300x300 300x300+0+0 16-bit sRGB 1.86KB 0.000u 0:00.000

最后 16位png。我会ask it in another question,为什么下一个:

$ mogrify -strip out7.png
$ identify out7.png 
out7.png PNG 300x300 300x300+0+0 8-bit sRGB 4c 321B 0.000u 0:00.000
再次8位。 -strip应仅删除元数据,更改图片本身。

2 个答案:

答案 0 :(得分:8)

我认为你需要沿着这些方向获得16位PNG

convert a.png -depth 16 PNG48:b.png

答案 1 :(得分:2)

我想通过查看你可以做的docs

   convert -depth 16 image.eps image2.png[16]

语法是

   convert [ options … ] file [file …] file

This site说'在文件名后面用括号括起来的可选索引来指定像Photo CD这样的多分辨率图像格式的所需子图像(例如img0001.pcd [4])或者MPEG图像的范围(例如video.mpg [50-75])。'

所以也许把[16]放在image2.png

之后