【问题标题】:Is there an equivalent of -compose mathematics in Imagick在 Imagick 中是否有相当于 -compose 数学
【发布时间】:2019-05-28 09:50:21
【问题描述】:

我正在尝试将 Imagemagick 脚本重写为 Imagick。我想在 Imagick 中编写以下代码片段。

-compose mathematics

有人可以检查是否有选项吗?我没有找到 -compose 选项 imagick::COMPOSITE_MATHEMATICS 在 PHP 中

【问题讨论】:

  • 我怀疑你会使用 PHP 的数学函数和运算符来进行数学运算。
  • -组合数学将以下内容应用于两个图像 c1*A*B+c2*B+c3*A+c4。因此,在某些情况下,您可以将其分解为分离 -compose multiply、-evaluate add c、-compose plus 以组合所有结果。并非所有 -compose 数学的使用都是可分离的,如果任何涉及会使总和为负的负值,除非使用 Imagemagick 的 HDRI 编译,例如 Imagemagick 7。
  • 续:如果这不起作用,那么您将需要使用 -fx 来执行与该操作等效的操作,并且速度会相当慢。
  • 续:对不起,一些单独的操作包括:-evaluate multiply c。我忘了包括上面的那些。
  • Fred 您能否给出您的解决方案作为答案。另外,您能否使用您提出的使用 ImageMagick 的替代方法编写等效于 -compose 数学的方法,以便我可以理解您在此处引用的内容?

标签: image-processing imagemagick imagick


【解决方案1】:

在 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 数学的使用都是可分离的,如果任何涉及超出编译的量子范围的值。因此,请确保您需要使用 Imagemagick 的 HDRI 编译,例如使用 Imagemagick 7 默认编译或重新编译启用 HDRI 的 IM 6。

如果你不能使用 HDRI,那么如果单独的操作不起作用,那么你将需要使用 -fx 来做同样的事情,它会相当慢

【讨论】:

    猜你喜欢
    • 2020-04-30
    • 1970-01-01
    • 2016-05-03
    • 1970-01-01
    • 2016-07-24
    • 2021-10-09
    • 2021-08-02
    • 1970-01-01
    • 2020-01-16
    相关资源
    最近更新 更多