Сначала о градациях серого ImageMagick.
ImageMagick на самом деле не имеет такого цветового пространства. Он только подделывает его в пространстве RGB, устанавливая все значения в каналах R (красный), G (зеленый) и B (синий) на одинаковые значения. (Если три значения не совпадают, изображение перестает быть оттенками серого.)
Во-вторых, о ваших (казалось бы) неудачных попытках создания изображений с 8-битным альфа-каналом.
Это вызвано тем, что вы не помещаете какие-либо другие значения 'color' в прозрачные области - они все простые (полностью прозрачные).
Попробуйте эту команду, которая преобразует встроенный ImageMagick logo:
изображение:
convert \
logo: \
-bordercolor white \
-background black \
+polaroid \
polaroid.png
Выходное изображение:
с удовольствием покажет необходимые вам 8-битные альфа-значения:
identify -verbose polaroid.png | grep -A 4 "Channel depth:"
Channel depth:
red: 8-bit
green: 8-bit
blue: 8-bit
alpha: 8-bit
Или попробуйте преобразовать встроенное rose:
изображение в полупрозрачное:
convert rose: -alpha set -channel A -fx '0.5' semitransp-rose.png
Тот же результат: 8-битная глубина для альфа-канала.
Чтобы изменить одну из ваших исходных команд:
convert -size 640x480 xc:none -depth 8 -channel A -fx 0.5 test.png
Если вы identify -verbose
получите получившееся изображение, вы обнаружите, что каналы R, G и B имеют глубину только 1 бит, а канал A - 8 бит. Это потому, что он на самом деле использует значение, отличное от 0
, в то время как все остальные каналы 0
.