imagemagick叠图

WBOY
WBOY원래의
2016-06-23 14:00:311249검색

请问怎么用imagemagick库实现GD库中imagecopyresampled的功能?把两张图叠在一起,看英文文档快看吐了,求捷径,哪怕告诉一个方法名我自己去研究,多谢!


回复讨论(解决方案)

//打开文件$imgA = "phpcn_logo.gif";$imgB = "phpchina.gif";$sourceImg = imagecreatefromgif($imgA);$targetImg = imagecreatefromgif($imgB);//获取文件大小$sourceSize = getimagesize($imgA);$targetSize = getimagesize($imgB);//合并图片imagecopyresized($targetImg, $sourceImg, 0, 0, 0, 0, $targetSize[0], $targetSize[1], $sourceSize[0], $sourceSize[1]);//保存结果$r = imagegif($targetImg, "c.gif");if($r){        echo "成功";}else{        echo "失败";}

//打开文件$imgA = "phpcn_logo.gif";$imgB = "phpchina.gif";$sourceImg = imagecreatefromgif($imgA);$targetImg = imagecreatefromgif($imgB);//获取文件大小$sourceSize = getimagesize($imgA);$targetSize = getimagesize($imgB);//合并图片imagecopyresized($targetImg, $sourceImg, 0, 0, 0, 0, $targetSize[0], $targetSize[1], $sourceSize[0], $sourceSize[1]);//保存结果$r = imagegif($targetImg, "c.gif");if($r){        echo "成功";}else{        echo "失败";}
不要GD库,这个我已经实现了,因为速度太慢,想换imagemagick

已经实现,文档看吐了,贴代码啥也不说了

$image = new Imagick('05.png');$imagepng = new Imagick('16.png');$imagepng->setImageFormat("png");$image->compositeImage($imagepng, $imagepng->getImageCompose(), 0, 0);$imagepng->destroy();header("Content-Type: image/png");echo $image;$image->destroy();

直接用imagick。

$cmd = sprintf("composite -gravity %s -geometry %s -dissolve %s '%s' %s %s", 'SouthEast', '+10+10', 100, '16.png', '05.png', '05.png');  exec($cmd); 
 

直接用imagick。

$cmd = sprintf("composite -gravity %s -geometry %s -dissolve %s '%s' %s %s", 'SouthEast', '+10+10', 100, '16.png', '05.png', '05.png');  exec($cmd); 
 
谢谢,我要直接输出,直接用shell不知道可不可行,另外将来可能往iis上移植,还是用扩展保险一些

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.