1

このコードを信頼して画像形式を取得できるかどうかを知る必要があります。

$image = new Imagick($path);
$format = $image->getImageFormat();

それとも、通常どおり拡張子やMIMEタイプなどを確認する必要がありますか?

4

2 に答える 2

4

単純な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よりもはるかに少なくなっています。

于 2013-01-21T00:41:53.873 に答える
0

クラスに慣れていない場合は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を参照してください

于 2013-01-21T00:41:19.870 に答える