首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Imagemagick将tif转换为rgba16 png

Imagemagick将tif转换为rgba16 png
EN

Stack Overflow用户
提问于 2015-02-27 16:28:25
回答 1查看 4K关注 0票数 0

这是我的源tif图片:

代码语言:javascript
复制
$ identify -verbose source.tif
Image: 
  Format: TIFF (Tagged Image File Format)
  Class: DirectClass
  Geometry: 512x512+0+0
  Resolution: 72x72
  Print size: 7.11111x7.11111
  Units: PixelsPerInch
  Type: Palette
  Base type: TrueColor
  Endianess: MSB
  Colorspace: RGB
  Depth: 8-bit
  Channel depth:
    red: 8-bit
    green: 8-bit
    blue: 1-bit

我试过:转换source.tif output.png

以下是研究结果:

代码语言:javascript
复制
$ identify -verbose output.png 
  Format: PNG (Portable Network Graphics)
  Class: DirectClass
  Geometry: 512x512+0+0
  Resolution: 28.34x28.34
  Print size: 18.0663x18.0663
  Units: PixelsPerCentimeter
  Type: Palette
  Endianess: Undefined
  Colorspace: RGB
  Depth: 8-bit
  Channel depth:
    red: 8-bit
    green: 8-bit
    blue: 1-bit

但我不知道如何使巴布亚新几内亚成为RGBA16。据我所知,这意味着它需要一个16位深度和一个阿尔法通道。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-28 09:19:59

通常,ImageMagick将使用与您的规范兼容的最经济的输出格式。因此,如果输入图像没有alpha通道(即透明度),则输出图像将不具有透明度。如果256色调色板足以满足您的图像中的颜色,它将创建一个苍白输出图像。如果一个8位的输出深度足够你的图像,它不会麻烦创建一个16位的输出。等等..。

如果你想强迫ImageMagick做一些不同的事情,你有很多选择。

如果要强制执行真彩输出文件或调色板(索引)输出文件,可以这样做:

代码语言:javascript
复制
convert input.png -type palette   output.png  # Force palettised (indexed) output
convert input.png -type truecolor output.png  # Force true colour output

如果要强制执行8位或16位,可以这样做:

代码语言:javascript
复制
convert input.png -depth 8   output.png  # Force 8-bit output
convert input.png -depth 16  output.png  # Force 16-bit (per channel) output  

如果要强制使用alpha/透明通道,则可以:

代码语言:javascript
复制
convert input.tif -type TrueColorAlpha output.png  # Force a true color output with transparency

你也可以把它们结合起来。如果要查看类型选项,请使用以下命令:

代码语言:javascript
复制
identify -list type

Bilevel
ColorSeparation
ColorSeparationAlpha
ColorSeparationMatte
Grayscale
GrayscaleAlpha
GrayscaleMatte
Optimize
Palette
PaletteBilevelAlpha
PaletteBilevelMatte
PaletteAlpha
PaletteMatte
TrueColorAlpha
TrueColorMatte
TrueColor

此外,特别是在PNG文件的情况下,还可以通过在大写中指定PNG类型,然后在输出文件名前面加上冒号来强制输出,因此:

代码语言:javascript
复制
convert input.tif PNG64:output.png     # Force 64-bit RGBA (3 channels @ 16-bits each, plus alpha)
convert input.tif PNG32:output.png     # Force 32-bit RGBA (3 channels @ 8-bits each, plus alpha)
convert input.tif PNG48:output.png     # Force 48-bit output (3 channels @ 16-bits each, no alpha)
convert input.tif PNG24:output.png     # Force 24-bit output (3 channels @ 8-bits each, no alpha)

所以简单的答案是

代码语言:javascript
复制
convert input.tif PNG64:output.png

代码语言:javascript
复制
convert input.tif -depth 16 -type TrueColorAlpha output.png

不过,如果输入映像中没有alpha通道,ImageMagick将覆盖第二个版本,而如果使用PNG64:,则不会覆盖第二个版本。

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

https://stackoverflow.com/questions/28769749

复制
相关文章

相似问题

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