用gd或imagick调整图像大小,使其覆盖透明部分

时间:2015-06-04 15:56:21

标签: php gd image-resizing imagick

我有一个图像自定义插件,其舞台为1000x700,用户可以上传他/她的照片并在舞台区域进行设计。

现在,如果用户没有使用完整的临时区域,只使用阶段的某些部分,请说800x400。我的最终图像是1000x700,透明背景,中间有用户设计。

现在的问题是,我想在完整的画布上拉伸用户设计,不带白色背景。

我怎样才能使用php GD或imagick(非手动)?

1 个答案:

答案 0 :(得分:0)

    $dstImage = imagecreatetruecolor(1000, 700);
    $black = imagecolorallocate($dstImage, 0, 0, 0);

    // Make the background transparent
    imagecolortransparent($dstImage, $black);

    $srcImage = imagecreatefrompng('srcImg.png');
    imagecopymerge($dstImage, $srcImage, 0, 0, 0, 800, 400, 1000, 700);
    imagepng($dstImage, 'outputNewImg.png');