1

私はimagickを使用していますが、いくつかの問題に直面しています。2つの画像を合成したい:image01とimage02、image01は背景画像であり、image01上のimage02合成の一部です。GDの画像コピー機能と同じように機能します。

bool imagecopy( resource dst_im, resource src_im, int dst_x, int dst_y, 
                int src_x, int src_y,int src_w, int src_h )

src_imの一部をdst_imにコピーします。x、y座標はsrc_x、src_yで、幅はsrc_w、高さはsrc_hです。定義された部分は、x、y座標、dst_xおよびdst_yにコピーされます。

問題は、Imagickによるimagecopy機能を実装する方法ですか?

ご協力いただきありがとうございます。

4

2 に答える 2

1

これはそれを行う必要があります:

//load files from source
$background = new Imagick(image01_src);
$overlay = new Imagick(image02_src);

//Crop the overlay to the required size
$overlay->cropImage ($new_width,$new_height,$x_offset,$y_offset);

//composite overlay on background
$background->compositeImage($overlay, Imagick::COMPOSITE_OVER, $margin_x, $margin_y);

//save result
$background->setImageFormat("png");
$background->writeImage(new_src);

//clean up
$background->clear();
$background->destroy();
$overlay->clear();
$overlay->destroy();
于 2012-12-31T09:46:22.477 に答える
0

コンポジットを使用します。例:

$large_image->compositeImage($small_image, Imagick::COMPOSITE_OVER, $margin_x, $margin_y);

ソースと最終的な写真を見せていただければ、正確なコードを教えていただけます。

于 2012-12-23T12:31:40.103 に答える