Есть ли в Imagick эквивалент -составить математику? - PullRequest
0 голосов
/ 01 января 2019

Я пытаюсь переписать скрипт Imagemagick в Imagick.Я поражен тем, что хочу написать следующий фрагмент кода в Imagick.

-compose mathematics

Может ли кто-нибудь проверить, есть ли опция?Я не нахожу опцию -compose, такую ​​как imagick :: COMPOSITE_MATHEMATICS в PHP

1 Ответ

0 голосов
/ 06 января 2019

В командной строке Imagemagick, если у вас есть два входных изображения A и B

convert A B -define compose:args="a,b,c,d" -compose mathematics result

then

that means

a*A*B + b*B + c*A +d

so 

a*A*B is 

convert A B -compose multiply -composite -evaluate multiply a tmp1

b*B is

convert B -evaluate multiply b tmp2

c*A is

convert A -evaluate multiply c tmp3


a*A*B + b*B + c*A +d

convert tmp1 tmp2 -compose plus -composite tmp3 -compose plus -composite -evaluate add 100*d% result

where 100*d must be evaluated ahead of time


Вам необходимо получить эквиваленты Imagick.

Не все применения математики -compose будут отделимыми, если они включают значения вне квантового диапазона вашего компилятора.Поэтому убедитесь, что вам нужно использовать HDRI-компиляцию Imagemagick, например, с компиляцией по умолчанию Imagemagick 7 или перекомпилировать IM 6 с включенным HDRI.

Если вы не можете использовать HDRI, то если отдельные операции не работают, то вынужно будет использовать -fx, чтобы сделать эквивалент, и это будет значительно медленнее

...