【发布时间】:2018-10-04 09:31:44
【问题描述】:
有一个图像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
如果有人想测试,这是我的测试图像:
最终
所以,@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 应该只删除元数据并且应该不更改图像本身。
【问题讨论】:
-
你没有放入 PNG16: 选项
标签: image image-processing imagemagick