我有以下 2 条路线:-

Route::get('resize/avatar', function() {
    $image = 'avatar.jpg';
    $target_filename_here = 'thumbnail_'.$image;
    $ffs = imagecreatefromjpeg($image);
    $size = getimagesize($image);
    $dst = imagecreatetruecolor(100,100);
    $dds = imagecopyresampled($dst,$ffs,0,0,0,0,100,100,$size[0],$size[1]);
    $dn = imagepng($dst,$target_filename_here); // adjust format as needed
    imagedestroy($ffs);
    imagedestroy($dst);
    if($dds) {
        return Redirect::to('color/');
    } else {
        return 'Failed to load the Profile Picture';
    }
});


Route::get('color/', function() {
    if(file_exists('thumbnail_avatar.jpg')) {
        $dest = imagecreatefrompng('transcript.png');
        $fn = imagecreatefromjpeg('thumbnail_avatar.jpg');
        imagecopy($dest, $fn, 550, 830, 0, 0, imagesx($fn), imagesy($fn));
        imagejpeg($dest,"test4.jpg",90);
        imagedestroy($dest);
        imagedestroy($fn);
        return HTML::image('test4.jpg');
    } else {
        return Redirect::to('resize/avatar');
    }
});

我收到错误作为标题,我想弄清楚,我在哪里创建了一个问题,但找不到它。

我使用的框架是“Laravel 4.2”,但我很确定,它与框架无关,因为函数是纯 php。

对于 TL; DR

我正在尝试创建个人资料图片的缩略图,而不是将其合并到另一张图片。这样做时,我得到:- imagecreatefromjpeg(): gd-jpeg: JPEG library reports unrecoverable error:
我已经在 stackoverflow 和 google 上搜索过像我这样的错误,但我无法找到和调试。

更新:

谢谢

常问问题 :-
  • 内存限制?
    ==> 我有足够的内存。
  • 在函数中使用“@”隐藏错误?
    ==> 没关系。我仍然面临这个问题。
  • 您是否尝试过其他图像?
    ==> 是的,我尝试过其他图像,并且我成功地做到了,它只会产生“生成的缩略图”的问题。

  • 我的问题 请自行尝试,使用以下非 Laravel 脚本:-
    function resizeImage() {
        $image = 'avatar.jpg';
        $target_filename_here = 'thumbnail_'.$image;
        $ffs = imagecreatefromjpeg($image);
        $size = getimagesize($image);
        $dst = imagecreatetruecolor(100,100);
        $dds = imagecopyresampled($dst,$ffs,0,0,0,0,100,100,$size[0],$size[1]);
        $dn = imagepng($dst,$target_filename_here); // adjust format as needed
        imagedestroy($ffs);
        imagedestroy($dst);
        if($dds) {
            color();
        } else {
            return 'Failed to load the Profile Picture';
        }
    }
    
    function colorCheck() {
        if(file_exists('thumbnail_avatar.jpg')) {
            $dest = imagecreatefrompng('transcript.png');
            $fn = imagecreatefromjpeg('thumbnail_avatar.jpg');
            imagecopy($dest, $fn, 550, 830, 0, 0, imagesx($fn), imagesy($fn));
                imagejpeg($dest,"test4.jpg",90);
                imagedestroy($dest);
                imagedestroy($fn);
            return HTML::image('test4.jpg');
        } else {
            resizeImage();
        }
    }
    

    你可以看到错误。

    谢谢

    最佳答案

    我知道我有点晚了,但我刚刚遇到了类似的问题,这让我发疯了。

    回答你的问题“......我正在努力弄清楚,我在哪里创建了一个问题”......错误是在

    $ffs = imagecreatefromjpeg($image);
    

    这个错误来自执行这行代码,当上传图像 jpg 然后使用 PHP GD2 库使用它时

    我遵循了下面链接中的解决方案,它解决了我的问题。

    http://anvilstudios.co.za/blog/2010/02/23/imagecreatefromjpeg-gd-jpeg-library-reports-unrecoverable-error/

    我希望有人会发现这很有用并节省一些时间。 anvilstudios 向 Nico 致敬

    更新
    对于那些无法访问链接的人,这里是代码
    $file_tempname = null;
    if (is_uploaded_file($FILE['tmp_name'])) {
        $file_tempname = $FILE['tmp_name'];
    }
    else{
        exit('Wrong file type');
    }
    
    $file_dimensions = getimagesize($file_tempname);
    $file_type = strtolower($file_dimensions['mime']);
    
    if ($file_type=='image/jpeg'||$file_type=='image/pjpeg'){
        if(imagecreatefromjpeg($file_tempname)){
            $ffs = imagecreatefromjpeg($file_tempname);
            return $ffs;
        }
    }
    

    关于php - imagecreatefromjpeg() : gd-jpeg: JPEG library reports unrecoverable error - Laravel,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29166698/

    10-11 11:21