php-创建两个图像资源并将第一个图像居中放置在第二个图像中

时间:2018-12-15 17:37:29

标签: php php-gd

我正在从URL创建图像资源,并将其合并到另一个图像中作为框架,但不会居中。

所以请告诉我如何居中

这是我的代码

switch (exif_imagetype ( $CompanyLogo )) {
    case 1: // IMAGETYPE_GIF
        $image = imagecreatefromgif($CompanyLogo);
        break;                            
    case '2': // IMAGETYPE_JPEG
        $image = imagecreatefromjpeg($CompanyLogo);
        break;                            
    case 3: // IMAGETYPE_PNG
        $image = imagecreatefrompng($CompanyLogo);
        break;                            
    case 6: // IMAGETYPE_BMP
        break;
    case 17: // IMAGETYPE_ICO
        break;                            
}

list($width, $height) = getimagesize($CompanyLogo);
$Ratio = ($width / $height);
$rgb = imagecolorat($image, 0, 0);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;
$img = imagecreatetruecolor($frame_width, $frame_height);

$red = imagecolorallocate($img, 255, 0, 0);
imagefill($img, 0, 0, $red);
imagecopymerge($img, $image, 0, 0, ($frame_width / 2) - ($width / 2), ($frame_height / 2) - ($height / 2) , $width, $height, 100);

谢谢

1 个答案:

答案 0 :(得分:0)

我用错误的参数传递了我的第一张图像的x,y

解决方案是:-

imagecopymerge($img, $image, ($frame_width / 2) - ($width / 2), ($frame_height / 2) - ($height / 2) , 0, 0 , $width, $height, 100);

而不是:-

imagecopymerge($img, $image, 0, 0, ($frame_width / 2) - ($width / 2), ($frame_height / 2) - ($height / 2) , $width, $height, 100);

再次感谢。