7

私は CodeIgniter を使用しており、画像の親指を作成しようとしています。成功したこともあれば、失敗したこともあります。次のエラーが表示されます-

<< A PHP Error was encountered
Severity: Notice

Message: imagecreatefromjpeg(): gd-jpeg, libjpeg: recoverable error: Premature end of JPEG file

Filename: libraries/Image_lib.php

Line Number: 1155 >>

「image_lib」ライブラリのロード後にこのコードを使用しました。

ini_set('gd.jpeg_ignore_warning', 1);

解決策はありますか?前もって感謝します!

4

4 に答える 4

3

問題は、関数のエラー抑制がオンになっていないことですimagecreatefromjpeg

最良のオプションは、基本ライブラリを拡張してimage_create_gdメソッドをオーバーロードすることです

新しいファイルを作成する./application/libraries/MY_Image_lib.php

<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');

Class MY_Image_lib extends CI_Image_Lib {

function image_create_gd($path = '', $image_type = '')
{
    if ($path == '')
        $path = $this->full_src_path;

    if ($image_type == '')
        $image_type = $this->image_type;


    switch ($image_type)
    {
        case     1 :
                    if ( ! function_exists('imagecreatefromgif'))
                    {
                        $this->set_error(array('imglib_unsupported_imagecreate', 'imglib_gif_not_supported'));
                        return FALSE;
                    }

                    return @imagecreatefromgif($path);
            break;
        case 2 :
                    if ( ! function_exists('imagecreatefromjpeg'))
                    {
                        $this->set_error(array('imglib_unsupported_imagecreate', 'imglib_jpg_not_supported'));
                        return FALSE;
                    }

                    return @imagecreatefromjpeg($path);
            break;
        case 3 :
                    if ( ! function_exists('imagecreatefrompng'))
                    {
                        $this->set_error(array('imglib_unsupported_imagecreate', 'imglib_png_not_supported'));
                        return FALSE;
                    }

                    return @imagecreatefrompng($path);
            break;

    }

    $this->set_error(array('imglib_unsupported_imagecreate'));
    return FALSE;
}

}
于 2013-02-06T18:21:33.057 に答える
3

imagecreatefromjpeg($img) の代わりに @imagecreatefromjpeg($img) を追加してみてください

ここで @ はエラーサプレッサーです

于 2015-10-30T13:38:13.227 に答える
0

このエラーが発生したときに、JPG ファイルが破損していることを確認しました。あなたのものをチェックすることを検討してください。

于 2020-04-10T22:13:32.933 に答える