【发布时间】:2021-11-26 06:37:23
【问题描述】:
我正在尝试使用 PHP Imagick 创建平铺水印以应用于图像。
基本上,我正在尝试使用 Imagick 而不是 CLI 复制以下命令:
exec('composite -dissolve 45 -tile ' . $watermarkFilename . ' ' . $inputFilename . ' ' . $outputFilename);
$image = new \Imagick($inputFilename);
$watermark = new \Imagick();
$watermark->newPseudoImage(
$image->getImageHeight(),
$image->getImageWidth(),
"tile:$watermarkFilename"
);
$image->setImageArtifact('compose:args', '45');
$image->compositeImage($watermark, Imagick::COMPOSITE_DISSOLVE, 0, 0);
$image->writeImage($outputFilename);
这种工作,除了我从 png 中丢失了 alpha 通道。
我注意到我可以将 VirtualPixelMethod 设置为 TILE,但我不知道如何重新采样水印以使其平铺。
$watermark->setImageVirtualPixelMethod(Imagick::VIRTUALPIXELMETHOD_TILE);
有人知道如何创建平铺图像吗?
【问题讨论】: