首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php imagecreatefrompng()不起作用

php imagecreatefrompng()不起作用
EN

Stack Overflow用户
提问于 2011-02-17 15:29:45
回答 1查看 5.9K关注 0票数 0

我正在从另一个现有的图像裁剪图像。它适用于jpg,jpeg,gif格式。但它不适用于png图像文件。出现以下错误。

代码语言:javascript
复制
Warning (2): imagecreatefrompng() [function.imagecreatefrompng]: '/var/www/shareme/app/webroot//documents/users/MTI5NzkyMjQzMmZmLWxvZ28tYmlnLnBuZw.png' is not a valid PNG file [APP/controllers/components/jq_imgcrop.php, line 80]

下面是实现这一点的代码。

代码语言:javascript
复制
function resizeThumbnailImage($thumb_image_name, $image, $width, $height, $start_width, $start_height, $scale){
        $newImageWidth = ceil($width * $scale);
        $newImageHeight = ceil($height * $scale);

        $ext = strtolower(substr(basename($image), strrpos(basename($image), ".") + 1));
        $source = "";
        if($ext == "png"){
            $source = imagecreatefrompng($image);
        }elseif($ext == "jpg" || $ext == "jpeg"){
            $source = imagecreatefromjpeg($image);
        }elseif($ext == "gif"){
            $source = imagecreatefromgif($image);
        }
        $newImage = imagecreatetruecolor($newImageWidth,$newImageHeight);

        imagecopyresampled($newImage,$source,0,0,$start_width,$start_height,$newImageWidth,$newImageHeight,$width,$height);
        imagejpeg($newImage,$thumb_image_name,90);
        chmod($thumb_image_name, 0777);
        return $thumb_image_name;
    }

你对这个问题有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-02-17 16:13:49

也许您还想检查mime类型,而不是潜在的错误扩展。

代码语言:javascript
复制
$handle = finfo_open(FILEINFO_MIME); 
$mime_type = finfo_file($handle, $src);
$mime_type = mime_content_type($src);
switch(strtolower($mime_type)) {
    case 'image/gif':
        $img = imageCreateFromGIF($src);
        break;
    case 'image/png':
        $img = imageCreateFromPNG($src);
        break;
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5026194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档