2016-12-11 17 views
0

У меня есть больше изображений PNG (скажем img1.png, img2_transparent.png, img3.png), и я хочу, чтобы они сглаживались одним изображением.ImageMagick - flatten of more png images

Перед тем, как придавить их я поставил (я хочу второе изображение было слегка прозрачным):

convert img2_transparent.png -alpha on -channel a -evaluate set 90% 

Тогда я придавить их (порядок img1.png, img2_transparent.png, img3.png):

convert *.png -flatten out.png 

Результат в порядке, второй «слой» имеет непрозрачность 90%, НО целая картинка (при этом все «три» слоя) «освещены». Цвета не такие глубокие, что я не задал альфу img2_transparent.png.

Как я могу избежать этого?

Спасибо

ответ

2

Если вы хотите, чтобы изображения, чтобы показать в равной мере в получаемом изображении, общая формула, чтобы установить непрозрачность каждого слоя

1/(1 + number of layers underneath) 

, где базовый слой при полной непрозрачности. Второе изображение - это непрозрачность 1/2, третье изображение - непрозрачность 1/3, четвертое - непрозрачность 1/4.

convert base.png \ 
    \(layer2.png -channel A -fx '0.5' \) \ 
    \(layer3.png -channel A -fx '0.333' \) \ 
    \(layer4.png -channel A -fx '0.25' \) .... 

На сайте Cambridge in Colour приведено объяснение. Прокрутите вниз до ИЗОБРАЖЕНИЕ ИЗОБРАЖЕНИЙ В ФОТОШОПЕ С ПОМОЩЬЮ СЛОЕВ.