ホームページ  >  記事  >  バックエンド開発  >  イメージマジックオーバーレイ

イメージマジックオーバーレイ

WBOY
WBOYオリジナル
2016-06-23 14:00:311179ブラウズ

imagemagick ライブラリを使用して、GD ライブラリに imagecopyresampled 関数を実装するにはどうすればよいですか? 2枚の写真を重ねてみたところ、英語の文書を読んでいて吐きそうになりました。メソッド名を教えていただければ、自分で調べますので、よろしくお願いします。


ディスカッションへの返信(解決策)

//打开文件$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 を直接使用してください。

rreee
ありがとうございます。直接出力したいのですが、シェルを直接使用できるかどうかわかりません。また、将来 iis に移植される可能性があるため、拡張機能を使用した方が安全です。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。