本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

裁剪并上传 PNG 文件会导致文件无法读取

发布于2024-11-30 20:10     阅读(747)     评论(0)     点赞(23)     收藏(0)


我正在使用 PHP 处理 .png 文件上传,该文件被裁剪然后上传。无论出于什么原因,我第一次尝试将透明部分换成黑色。在阅读了多个 stack overflow 问题并尝试了解决方案后,我现在处于文件上传但无法读取且为 0 字节的阶段。出了什么问题?(我正在关注其他问题的确切答案……)

.jpeg 可以正常工作,但 .png 则不行

我正在使用的代码:

$dest_image = ImageCreateTrueColor($target_width, $target_height);

        switch ($search->found_extension()) {
            case 'PNG':
            case 'png':
                imagealphablending($dest_image, false);
                imagesavealpha($dest_image, true);
                $source_image = imagecreatefrompng($image);

                $transparent = imagecolorallocatealpha($dest_image, 255, 255, 255, 127);
                imagefilledrectangle($dest_image, 0, 0, $target_width, $target_height, $transparent);

                imagecopyresampled($dest_image, $source_image, 0, 0, $x, $y, $target_width, $target_height, $w, $h);
                header('Content-type: image/png');
                imagepng($dest_image, "../../" . $folder . "/" . cleanstring($userdata->id) . $hasher . ".png", $quality);
            break;

            case 'jpg':
            case 'jpeg':
            case 'JPG':
            case 'JPEG':
                imagealphablending($dest_image, false);
                imagesavealpha($dest_image, true);
                $source_image = imagecreatefromjpeg($image);

                imagecopyresampled($dest_image, $source_image, 0, 0, $x, $y, $target_width, $target_height, $w, $h);
                header('Content-type: image/jpeg');
                imagejpeg($dest_image, "../../" . $filename, $quality);
            break;
        }

尝试过的解决方案:

如何在 PHP 中调整 png 的大小并使其具有透明度?

在 php 中调整图像透明度


解决方案


查看 ajax 请求响应,我发现错误是由于第三个参数的imagepng和之间的差异引起的imagejpegquality

imagejpeg范围是 0 - 100(最佳质量)和imagepng0 - 9(高度压缩)。



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:http://www.phpheidong.com/blog/article/558241/d7c3a7c92b2c1564a042/

来源:php黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

23 0
收藏该文
已收藏

评论内容:(最多支持255个字符)