Как правило, ImageMagick будет использовать наиболее экономичный формат вывода, который совместим с вашими спецификациями. Итак, если ваше входное изображение не имеет альфа-канала (т.е. прозрачности), ваше выходное изображение не будет иметь прозрачности. Если 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
Если вы хотите принудительно использовать альфа-канал / канал прозрачности, вы можете:
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
, вы также можете принудительно выводить вывод, указав тип 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
or
convert input.tif -depth 16 -type TrueColorAlpha output.png
Однако будьте осторожны, ImageMagick переопределит вторую версию, если во входном изображении нет альфа-канала, тогда как он не будет этого делать, если вы используете PNG64:
.
person
Mark Setchell
schedule
28.02.2015
convert
сделала то, что вы ей сказали, ничего страшного. Возможно, вам нужно сказать, что вам нужен 16-битный вывод (который, если я правильно понимаю, требует понижающей дискретизации до 4-4-4-4 каналов). - person Jongware   schedule 27.02.2015