dsyo9700 2016-04-23 16:56
浏览 84
已采纳

(PHP)图像调整大小失败:/

I try to resize an image, but I still get the same error:

Warning: imagecreatefromjpeg(): gd-jpeg: JPEG library reports unrecoverable error: in /Applications/XAMPP/xamppfiles/htdocs/dad/gallery.php on line 18

Warning: imagecreatefromjpeg(): 'img/test/Bildschirmfoto 2014-01-25 um 08.05.13 nachm Kopie.jpg' is not a valid JPEG file in /Applications/XAMPP/xamppfiles/htdocs/dad/gallery.php on line 18

Warning: imagesx() expects parameter 1 to be resource, boolean given in /Applications/XAMPP/xamppfiles/htdocs/dad/gallery.php on line 19

Warning: imagesy() expects parameter 1 to be resource, boolean given in /Applications/XAMPP/xamppfiles/htdocs/dad/gallery.php on line 20

Notice: A non well formed numeric value encountered in /Applications/XAMPP/xamppfiles/htdocs/dad/gallery.php on line 24

Notice: A non well formed numeric value encountered in /Applications/XAMPP/xamppfiles/htdocs/dad/gallery.php on line 24

Warning: imagesx() expects parameter 1 to be resource, boolean given in /Applications/XAMPP/xamppfiles/htdocs/dad/gallery.php on line 25

Warning: imagesy() expects parameter 1 to be resource, boolean given in /Applications/XAMPP/xamppfiles/htdocs/dad/gallery.php on line 25

Warning: imagecopyresized() expects parameter 2 to be resource, boolean given in /Applications/XAMPP/xamppfiles/htdocs/dad/gallery.php on line 25

So, here's my code:

function make_thumb($image_path, $thumb_path, $thumb_width) { 
    $src_img = imagecreatefromjpeg("$image_path"); 
    $origw=imagesx($src_img); 
    $origh=imagesy($src_img); 
    $new_w = $thumb_width; 
    $diff=$origw/$new_w; 
    $new_h=$new_w; 
    $dst_img = imagecreatetruecolor($new_w,$new_h); 
    imagecopyresized($dst_img,$src_img,0,0,0,0,$new_w,$new_h,imagesx($src_img),imagesy($src_img)); 
    imagejpeg($dst_img, "$thumb_path"); 
    RETURN TRUE; 
}

And here's the picture:

1

展开全部

  • 写回答

1条回答 默认 最新

  • dps43378 2016-04-23 18:19
    关注

    From your error the resource is not an valid jpg as the error state, and the following errors after that just a chain.

    I would suggest you to use this Library I wrote on PHP image upload, resize and crop called eImage

    Try this code Instead:

    function make_thumb($image_path, $thumb_path, $thumb_width) {
        $src_img = imagecreatefromjpeg("$image_path");
        $origw=imagesx($src_img);
        $origh=imagesy($src_img);
    
        // This calculations goes is for?
        // note that diff is not being used
        $new_w = $thumb_width;
        $diff = $origw/$new_w;
        $new_h = $new_w;
        // end of calculation
        $canvas = imagecreatetruecolor($new_w,$new_h);
        imagecopyresampled($canvas,$src_img,0,0,0,0,$new_w,$new_h,$origw,$origh);
        imagejpeg($canvas, $thumb_path);
        imagedestroy($src_img);
        imagedestroy($canvas);
        return true;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部