1. ホーム
  2. php

[解決済み] JPEGファイルの早すぎる終了

2022-02-18 14:08:26

質問事項

画像のサイズを変更する際に、Premature end of JPEG fileというエラーが発生します。面白いことに、このエラーは携帯電話などカメラで撮影した画像をアップロードしたときだけで、それ以外はすべてうまくいっています。私は、これはpluploadで使用されるチャンクサイズのためかもしれないと思った。そこで、試しに3mb程度の大きめの画像をアップロードしてみました。カメラで撮影した画像以外では問題なく動作しています。だから、カメラで撮った写真をアップロードすると、このエラーが発生するのです。

php function imagecreatefromjpeg is throwing an error "imgname.jpg is not a valid JPEG file" というエラーです。

画像のサイズを変更するために、Codeigniterのimage Manipulation Classを使用しています。

どのように解決するのですか?

提供された内容に基づいて、私の推測をお伝えすることしかできません。

カメラの画像は通常、非常に大きなものです。カメラの画像をリサイズしてみて、うまくいくかどうか試してみることをお勧めします。

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 .