Imagemagick 将 tif 转换为 rgba16 png
Imagemagick convert tif to rgba16 png
这是我的源 tif 图片:
$ 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
结果如下:
$ 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
但我没有看到如何使 PNG 成为 RGBA16。据我了解,这意味着它需要 16 位深度和 alpha 通道。
通常,ImageMagick 将使用与您的规格兼容的最经济 输出格式。因此,如果您的输入图像没有 alpha 通道(即透明度),您的输出图像将没有透明度。如果 256 色调色板足以满足图像中的颜色,它将创建调色板输出图像。如果 8 位输出深度对您的图像来说足够了,它就不会费心创建 16 位输出。等等...
如果您想强制 ImageMagick 做一些不同的事情,您有多种选择。
如果您想强制 真彩色或调色(索引)输出文件,您可以这样做:
convert input.png -type palette output.png # Force palettised (indexed) output
convert input.png -type truecolor output.png # Force true colour output
如果你想强制8位或16位,你可以这样做:
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/transparency频道,你可以这样做:
convert input.tif -type TrueColorAlpha output.png # Force a true color output with transparency
你也可以把它们结合起来。如果要查看 type 选项,请使用此命令:
identify -list type
Bilevel
ColorSeparation
ColorSeparationAlpha
ColorSeparationMatte
Grayscale
GrayscaleAlpha
GrayscaleMatte
Optimize
Palette
PaletteBilevelAlpha
PaletteBilevelMatte
PaletteAlpha
PaletteMatte
TrueColorAlpha
TrueColorMatte
TrueColor
此外,特别是在 PNG
文件的情况下,您还可以 force 通过指定大写的 PNG 类型,然后在输出文件名,因此:
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)
所以简短的回答是
convert input.tif PNG64:output.png
或
convert input.tif -depth 16 -type TrueColorAlpha output.png
但是请注意,如果您的输入图像中没有 alpha 通道,ImageMagick 将覆盖第二个版本,而如果您使用 PNG64:
.
,它不会这样做
这是我的源 tif 图片:
$ 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
结果如下:
$ 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
但我没有看到如何使 PNG 成为 RGBA16。据我了解,这意味着它需要 16 位深度和 alpha 通道。
通常,ImageMagick 将使用与您的规格兼容的最经济 输出格式。因此,如果您的输入图像没有 alpha 通道(即透明度),您的输出图像将没有透明度。如果 256 色调色板足以满足图像中的颜色,它将创建调色板输出图像。如果 8 位输出深度对您的图像来说足够了,它就不会费心创建 16 位输出。等等...
如果您想强制 ImageMagick 做一些不同的事情,您有多种选择。
如果您想强制 真彩色或调色(索引)输出文件,您可以这样做:
convert input.png -type palette output.png # Force palettised (indexed) output
convert input.png -type truecolor output.png # Force true colour output
如果你想强制8位或16位,你可以这样做:
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/transparency频道,你可以这样做:
convert input.tif -type TrueColorAlpha output.png # Force a true color output with transparency
你也可以把它们结合起来。如果要查看 type 选项,请使用此命令:
identify -list type
Bilevel
ColorSeparation
ColorSeparationAlpha
ColorSeparationMatte
Grayscale
GrayscaleAlpha
GrayscaleMatte
Optimize
Palette
PaletteBilevelAlpha
PaletteBilevelMatte
PaletteAlpha
PaletteMatte
TrueColorAlpha
TrueColorMatte
TrueColor
此外,特别是在 PNG
文件的情况下,您还可以 force 通过指定大写的 PNG 类型,然后在输出文件名,因此:
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)
所以简短的回答是
convert input.tif PNG64:output.png
或
convert input.tif -depth 16 -type TrueColorAlpha output.png
但是请注意,如果您的输入图像中没有 alpha 通道,ImageMagick 将覆盖第二个版本,而如果您使用 PNG64:
.