このコードを信頼して画像形式を取得できるかどうかを知る必要があります。
$image = new Imagick($path);
$format = $image->getImageFormat();
それとも、通常どおり拡張子やMIMEタイプなどを確認する必要がありますか?
このコードを信頼して画像形式を取得できるかどうかを知る必要があります。
$image = new Imagick($path);
$format = $image->getImageFormat();
それとも、通常どおり拡張子やMIMEタイプなどを確認する必要がありますか?
単純なphp文字列関数でファイルの拡張子(pic.jpg
たとえば)をチェックするだけではなく、それを信頼することができます。
あなたは実験をすることができます。.jpg
たとえば、画像ファイルの名前を次のように変更し.png
ます。Windowsの「名前の変更」の簡単なツールを使用します。つまり、画像は画像であるように見えます.png
。ただし、次のようにコマンドを試しImagick
てみcmd
てください。-verbose
C:\>identify -verbose pic.png
Image: pic.png
Format: JPEG (Joint Photographic Experts Group JFIF format)
Class: DirectClass
Geometry: 482x362+0+0
Resolution: 72x72
... many more here ...
そして、実際には画像がであることがわかります.jpg
。$image->getImageFormat();
プログラムのどこかでも同じことが言えます。
Imagick
強力なツールです。残念ながら、PHPでのAPIに関する情報は、GDよりもはるかに少なくなっています。
クラスに慣れていない場合はImagick
、いつでもGD関数を試すことができます。例えば
list (width, height, $type) = getimagesize($path);
$type
変数は、、、などのいずれIMAGETYPE_GIF
かになりIMAGETYPE_JPEG
ますIMAGETYPE_PNG
http://php.net/manual/en/function.getimagesize.phpおよびhttp://php.net/manual/en/image.constants.phpを参照してください