代码之家  ›  专栏  ›  技术社区  ›  Rinsad Ahmed

在Imagick中是否有一个与组合数学相当的词

  •  0
  • Rinsad Ahmed  · 技术社区  · 7 年前

    我正在尝试将Imagemagick脚本重写为Imagick。我突然想到要把下面的代码段写到Imagick上。

    -compose mathematics
    

    有人能检查一下是否有选择吗?我找不到像这样的组合选项 imagick::PHP中的复合_数学

    1 回复  |  直到 7 年前
        1
  •  0
  •   fmw42    7 年前

    在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等价的东西。

    并非所有的组合数学都是可分离的,如果有任何涉及的值超出了编译的量子范围。因此,请确保您需要使用Imagemagick的HDRI编译,例如Imagemagick 7默认编译或启用HDRI的重新编译IM 6。

    如果您不能使用HDRI,那么如果单独的操作不起作用,那么您需要使用-fx来执行等效操作,而且速度会慢得多