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


resizing image with gd or imagick so that it cover its transparent part

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

现在,如果用户不使用整个舞台区域,只使用舞台的一部分,比如800x400。我的最终图像将是1000x700的透明背景,中间有用户的设计。

现在的问题是,我想在没有白色背景的全画布上拉伸用户设计。

我如何使用php GD或imagick(不手动)做到这一点?

    $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');