PHPを使用して画像をサムネイルに処理しています.jpg、.jpeg、および.pngの3つの異なる拡張子タイプを許可しています...最初の2つと後者は、異なる関数で処理する必要があります。 createimagefromjpg() と createimagefrompng() をそれぞれ作成します。
画像のファイル拡張子を取得し、if ステートメントを使用してファイルの種類を確認し、正しく処理できるようにしています。
$extension = pathinfo($filename, PATHINFO_EXTENSION);
// Read source image
if ($extension == ('jpg' || 'jpeg')) {
$source_image = imagecreatefromjpeg($filename);
return '1';
} else if ($extension == 'png') {
$source_image = imagecreatefrompng($filename);
return '2';
} else {
return 'error';
}
この関数は 1 を返すため、jpg および jpeg 画像は正しく処理されます。ただし、png ファイルを通過すると、png != jpeg または jpg であっても、同様に最初のブランチに入り、「1」が返されます。変。このエラーにより、サムネイルがまったく生成されません。
さらに混乱します。==
IFステートメントで置き換えて厳密な比較を有効にすると===
、jpgファイルとjpegファイルが完全にエラーになり、明らかに「jpg」!=「jpg」(そうであっても)、およびjpegでも同様です。PNG ファイルはスクリプトを完全に壊します。
編集: 問題は私の IF ステートメントではなく、imagecreatefrompng()
関数のようです。小さな画像(200x200)では機能しますが、大きな画像では機能しません...誰でもこれを説明できますか?