gpt4 book ai didi

php - 在 PHP 中使用 ImageMagick 倾斜移动图像

转载 作者:行者123 更新时间:2023-12-04 05:42:33 25 4
gpt4 key购买 nike

我有一个可以在命令行上运行的命令,可以使用 Imagemagick 对图像进行倾斜移位:

转换\( myimage.jpg -gamma 0.75 -modulate 100,130 -contrast\)\( +clone -sparse-color Barycentric "0,0 black 0,%h white"-function polynomial 4,-4,1 -level 0,50 %\) -compose blur -set option:compose:args 5 -composite myimage.jpg

我希望能够使用 PHP 的 imagemagick 库重现此命令的效果。命令的第一部分很容易重现,但我无法弄清楚 sparse-color 及其后面的参数。到目前为止,我有:

$image = new imagick("myimage.jpg")
$image->gammaImage(0.75);
$image->modulateImage(100,130,100);
$图像->对比度图像(1);

谢谢!

最佳答案

我假设您指的是此处找到的示例:

http://www.imagemagick.org/Usage/photos/

话虽如此,我一直试图用 PHP Imagick 完成同样的事情。我在 Linux 中使用 PHP Imagick 3.0.1 和 ImageMagick 6.7.4-4 2012-01-09 Q16。

似乎模糊合成模式没有记录。我通过查看 magick/composite.h 下的 ImageMagick 源找到它在线88 .

此代码完成您正在寻找的内容:

$im = new Imagick();
$im->readImageBlob(file_get_contents($src));
$qr = $im->getQuantumRange();
$qr = $qr['quantumRangeLong'];
$im->sigmoidalContrastImage(true, 10, $qr / 2, Imagick::CHANNEL_ALL);
$blurmap = new Imagick();
$blurmap->setOption('compose:args', '5');
$blurmap->newPseudoImage($im->getImageWidth(), $im->getImageHeight(), 'gradient:black-white');
$blurmap->functionImage(Imagick::FUNCTION_POLYNOMIAL, array(4.5, -4.5, 1));
$blurmap->levelImage(0, 1, $qr / 2);
$im->compositeImage($blurmap, 57, 0, 0);
$blurmap->destroy();

如果您需要更多模糊,只需更改 compose:args10或者其他的东西。我发现的一件事是,我必须在创建/加载任何东西到魔杖本身之前设置选项。

我找不到 SparseColorImage()函数的行为就像在命令行上一样,尽管我确信如果其他人弄清楚了,他们可以贡献那部分。以上足以满足我的需求。

编辑:在进一步检查生成的图像后,我注意到即使是模糊图的黑色部分也被模糊了。经过一番搜索,这似乎源于 ImageMagick 中引入的错误。我切换到 6.7.8-1 2012-07-05 Q16 版本,模糊贴图现在似乎可以正常工作了。如果您发现模糊合成出现了不必要的模糊,我建议您升级您的 ImageMagick。

关于php - 在 PHP 中使用 ImageMagick 倾斜移动图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11108004/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com