裁剪/黑色背景问题

时间:2021-03-08 15:28:48

标签: php crop alpha

如果裁剪框比原始图像大,看起来我会得到黑色背景。是否有任何解决方案可以使新图像的透明度变大,即使它更大?

谢谢

    private function crop($src, $dst, $data)
{
    if (!empty($src) && !empty($dst) && !empty($data)) {
        switch ($this->type) {
            case IMAGETYPE_GIF:
                $src_img = imagecreatefromgif($src);
                break;
            
            case IMAGETYPE_JPEG:
                $src_img = imagecreatefromjpeg($src);
                break;
            
            case IMAGETYPE_PNG:
                $src_img = imagecreatefrompng($src);
                break;
        }

[...]

        $dst_img = imagecreatetruecolor($dst_img_w, $dst_img_h);
        
        // Add transparent background to destination image
        imagefill($dst_img, 0, 0, imagecolorallocatealpha($dst_img, 0, 0, 0, 127));
        imagesavealpha($dst_img, true);
        
        $result = imagecopyresampled($dst_img, $src_img, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h);

0 个答案:

没有答案