首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >成像深度转换

成像深度转换
EN

Stack Overflow用户
提问于 2014-07-10 18:36:37
回答 2查看 14.6K关注 0票数 7

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

代码语言:javascript
复制
$ 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来尝试这个。所以:

代码语言:javascript
复制
$ convert in.png -strip out2.eps        #convert to eps
$ convert out2.eps -strip out2.png      #back

而且图像是不同的。

代码语言:javascript
复制
$ 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

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

好奇加- EPS是16位!

代码语言:javascript
复制
$ 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?(来自蒂夫)。

编辑

Tested @Rachel建议:

代码语言:javascript
复制
$ 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

再吃八口。

我的ImageMagick版本:

代码语言:javascript
复制
$ 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

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

最终

马克·塞切尔和蕾切尔·盖伦的推荐都很好。@Marks命令工作,所以关键是PNG48。

代码语言:javascript
复制
$ 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了.我将如何在另一个问题上问,为什么下一个:

代码语言:javascript
复制
$ mogrify -strip out7.png
$ identify out7.png 
out7.png PNG 300x300 300x300+0+0 8-bit sRGB 4c 321B 0.000u 0:00.000

再吃八口。而且-strip应该只删除元数据,并且而不是应该改变图像本身。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-07-10 18:54:00

我想你需要一些类似的东西才能得到16位的PNGs

代码语言:javascript
复制
convert a.png -depth 16 PNG48:b.png
票数 10
EN

Stack Overflow用户

发布于 2014-07-10 19:07:25

我认为通过查看文档你可以做到

代码语言:javascript
复制
   convert -depth 16 image.eps image2.png[16]

语法是

代码语言:javascript
复制
   convert [ options … ] file [file …] file

本站说,“使用文件名后面括号中的可选索引来指定所需的多分辨率图像格式的子图像,如Photo CD (例如in 0001.pcd4)或MPEG图像的范围(例如.MPEG 50-75)。”

所以也许在图片2之后放16

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24683912

复制
相关文章

相似问题

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