使用php脚本+使用imagemagick而不使用命令行覆盖任何大小的图像

时间:2013-05-13 10:22:55

标签: php imagemagick

我被困在某个地方,客户需要在产品图片上更改帧图像。表示如果图像尺寸为200 * 400,则图像框将应用于产品图像,如果产品图像为400 * 200,则同样的框架将应用于产品图像,而无需任何手动信息(动态)。我认为可以使用imagemagick,因为我找到了这个url(http://www.fmwconcepts.com/imagemagick/picframe/index.php),但是它使用的是命令行但是我想要它没有命令行。

我正在制作类似给定页面的内容: - url:http://fineartamerica.com/products/conversations-laura-sue-canvas-print.html

希望我能很好地解释我的问题。请帮帮我。 感谢您的支持。

3 个答案:

答案 0 :(得分:1)

看看http://php.net/manual/en/function.getimagesize.php,不需要imagemagick

但是要使用外部网址,你应该在php ini中启用url_allow_fopen = true(不确定运行时是否有效)

答案 1 :(得分:1)

查看Imagick::frameImage()功能。

$image->frameImage("#aabbcc", 20, 20, 5, 5);

使用5px斜角在图像周围添加20px蓝框。

答案 2 :(得分:1)

我有一个类似的要求,代码为我工作

    $over = new Imagick($_SERVER['DOCUMENT_ROOT'] .'ks/new.png'); // load frame
    $pic = new Imagick($_FILES['pic']['tmp_name']); // load image
    $pic->resizeImage(1299,1722,Imagick::FILTER_LANCZOS,1); // resize your image to the size of your frame
    $pic->setImageFormat ("png"); //  set formate of final image
    $pic->compositeImage($over, Imagick::COMPOSITE_DEFAULT, (((($pic->getImageWidth()) - ($over->getImageWidth())))/2), (((($pic->getImageHeight()) - ($over->getImageHeight())))/2));
    $name=rand(1,10000000000);
    file_put_contents ("pictures/$name.png", $pic);
    $pic->destroy();