PHPでは、GDライブラリは強力な画像処理機能を提供します。その中でも、GD2はGDライブラリのバイナリ画像形式であり、通常はGDライブラリ内で生成された画像を保存するために使用されます。画像がGD2形式であるかどうかを判断し、画像をロードして処理しようとする必要がある場合は、 getImagesize()とImageCreatefromgd2()を組み合わせて実現できます。
この記事では、このタスクを達成する方法を詳細に説明します。
GD2は、 .gd2ファイル拡張機能で表される画像形式であり、GDライブラリ用の専用の画像データストレージメソッドです。この形式は通常、Webページで直接使用されていませんが、一部の自動化された画像処理シナリオではまだ価値があります。
PHPのgetImagesize()関数は、画像のサイズとそのmimeタイプを返すことができます。サポートされている画像タイプの中で、一般的なJPEG、PNG、GIF、BMPなど。ただし、 .gd2形式の画像の場合、関数は標準のMIMEタイプを返すのではなく、不明なタイプを失敗または返す場合があります。
getImagesize()を使用して画像情報を確認する例を次に示します。
<?php
$imagePath = 'https://m66.net/images/sample.gd2';
$imageInfo = @getimagesize($imagePath);
if ($imageInfo === false) {
echo "画像タイプは認識できません,多分 GD2 形式またはその他のサポートされていない形式。\n";
} else {
echo "画像タイプはです:{$imageInfo['mime']}\n";
}
?>
注: getImagesize()は、画像がGD2形式であるかどうかを明確に判断できないため、他の方法でのみ処理しようとすることができます。
ImageCreateFromgd2()は、 .gd2形式の画像の読み込み専用のPHP関数です。ファイルがGD2形式であるか、GD2であると疑われることがすでにわかっている場合は、直接読み込むことができます。
<?php
$imagePath = 'sample.gd2';
if (file_exists($imagePath)) {
$image = @imagecreatefromgd2($imagePath);
if ($image === false) {
echo "読むことができません GD2 画像,おそらく無効です GD2 形式。\n";
} else {
echo "正常にロードされました GD2 画像!\n";
// あなたはそれを保存することができます PNG 等形式
imagepng($image, 'output.png');
imagedestroy($image);
}
} else {
echo "ファイルは存在しません:$imagePath\n";
}
?>
画像がGD2形式であるかどうかを判断するための直接的な機能はありませんが、次のアイデアを採用できます。
getImagesize()でロードしてみてください:故障してファイル拡張子が.gd2の場合、GD2形式である可能性が最も高くなります。
ImageCreateFromgd2()でロードしてみてください:成功した場合は、GD2として決定できます。
MIMEタイプと拡張と組み合わせて:MIMEタイプが不明であり、拡張機能が.gd2の場合、 ImageCreateFromGD2()を使用して負荷をテストする必要があります。
PHPには、画像がGD2形式であるかどうかを識別するための特別な機能はありませんが、ファイル拡張子、 GetImagesize()の返品値、および検出と処理を実現するためにImageCreateeFromGd2()の暫定的な負荷を使用できます。
ヒント:GD2画像形式は主に内部画像ストレージに使用されており、Webディスプレイに直接使用することはお勧めしません。一般的な形式(PNGやJPEGなど)に変換することをお勧めします。