使用PHP将图像放在另一个图像中


Place image in another image with PHP

我有一个图像,上面的文本是通过php表单动态生成的。我将徽标图像的位置保存到mysql数据库中的一个变量中。有没有办法拍摄这个图像并将其应用到图像中的固定位置?如果需要,必须将其调整为较小的大小以适应此图像区域。

我已经有了一个看起来像这样的脚本:

        $img = imagecreatefromjpeg('coupon/coupontemplate.jpg');
        $textColor = imagecolorallocate($img, 0, 0, 0); // black text
        //Write first the coupon title
        imagefttext($img, 16, 0, 20, 34, $textColor, 'coupon/arialbd.ttf', $title);
        //Then write the coupon description
        imagettftextbox($img, 13, 0, 20, 45, $textColor, 'coupon/arial.ttf', $description, 440);
        //If the checkbox to include logo is checked...
        if ($_POST['clogo'] == 'y') {
            $logo = $row['imagecompany'];
            $logo_file = "../directory/memberimages/$logo";
            $logo_file_type = getimagesize($logo_file);
            if ($logo_file_type['mime'] == 'image/jpg') {
                $logoImage = imagecreatefromjpeg($logo_file);
            } else if ($logo_file_type['mime'] == 'image/gif') {
                $logoImage = imagecreatefromgif($logo_file);
            } else if ($logo_file_type['mime'] == 'image/png') {
                $logoImage = imagecreatefrompng($logo_file);
            }
            }
        // Output image to the browser
        //header('Content-Type: image/jpeg');
        //imagejpeg($img);
        // Or save to file
        imagejpeg($img, 'my-text.jpg');
        imagedestroy($img);
    }
//}

有人知道如何做到这一点吗?从指定的位置获取图像并将其放在另一张图像上?谢谢

合并图像可以这样做:引用

<?php
 # If you don't know the type of image you are using as your originals.
 $image = imagecreatefromstring(file_get_contents($your_original_image);
 $frame = imagecreatefromstring(file_get_contents($your_frame_image));
 # If you know your originals are of type PNG.
 $image = imagecreatefrompng($your_original_image);
 $frame = imagecreatefrompng($your_frame_image);
 imagecopymerge($image, $frame, 0, 0, 0, 0, 50, 50, 100);
 # Save the image to a file
 imagepng($image, '/path/to/save/image.png');
 # Output straight to the browser.
 imagepng($image);

我认为您正在寻找imagecopyresoampled()或imagecopyresized()。

您可以使用的imagecopy函数。快速搜索发现这篇帖子可能会帮你。

http://forums.bit-tech.net/showthread.php?t=117270

您想要的函数是imagecopy:

bool imagecopy(资源$dst_im,资源$src_im,int$dst_x,int$dst_y,int$src_x,int$src_y,int$src_w,int$src_h)

http://php.net/manual/en/function.imagecopy.php