5

一部の画像のサイズを変更しているときに、このJPEGファイルの早期終了エラーが発生します。興味深い奇妙な部分は、モバイルなどでカメラで撮影した画像をアップロードした場合にのみこのエラーが発生することです。これは、pluploadで使用されているチャンクサイズが原因である可能性があると思いました。だから、私はテストするために3MBのような大きなサイズの画像をアップロードしました。カメラで撮影した画像以外の画像でも問題なく動作します。したがって、カメラの写真をアップロードするたびに、このエラーが発生します。

エラーの詳細:php関数imagecreatefromjpegは、「imgname.jpgは有効なJPEGファイルではありません」というエラーをスローします。

画像のサイズを変更するには、Codeigniterの画像操作クラスを使用しています。

4

4 に答える 4

3

あなたが提供したものに基づいて、私はあなたに私の控除を与えることができるだけです。

カメラの画像は通常非常に大きいです。カメラ画像のサイズを変更して、機能するかどうかを確認することをお勧めします。

PHPのバージョンは何ですか?これに関連するバグがあります:https ://bugs.php.net/bug.php?id = 29878

JPEGファイルがRGB形式であるかどうかも確認してください。マニュアルのどこかに、GDライブラリの特定のバージョンのCMYKを正しくロードできないと記載されていました。

別のクラスを使用することはできますか?私はこのクラスを使用して画像のサイズを変更しましたが、何年も問題は発生していません。

画像のサイズ変更は次のように簡単です。

<?php
   include('SimpleImage.php');
   $image = new SimpleImage();
   $image->load('picture.jpg');
   $image->resizeToHeight(500);
   $image->save('picture2.jpg');
   $image->resizeToHeight(200);
   $image->save('picture3.jpg');
?>

すべての提案がうまくいかなかった場合は、ImageMagickを使用してみてください。

于 2012-09-15T16:06:22.317 に答える
3

また、「JPEG ファイルの途中終了」は、画像コンテンツが完全でない場合の一般的なソフトウェア エラーです。ソフトウェアは、最後のピクセルの色によって決定します。

ファイルがネットワーク経由で適切にコピーされなかったため、tesseract(オープンソースOCRエンジン)から「JPEGファイルの途中終了」を取得しました。

于 2014-05-04T09:06:47.180 に答える
2

のデフォルト値を設定でき gd.jpeg_ignore_warning=1ますphp.ini

また

ini_set('gd.jpeg_ignore_warning', true);呼び出す前に、PHPスクリプトで このように設定できますimagecreatefromjpeg()

上記のいずれかを実装した後、GD Library は以前は失敗していたエラーを無視し imagecreatefromjpeg()image resource identifier.

注:PHP 7.1.0デフォルト値のgd.jpeg_ignore_warningは から に変更され0ました1

参照

于 2017-02-04T16:58:29.247 に答える