9
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【PHP】画像処理関連メモ

Last updated at Posted at 2015-07-31

getimagesize

画像の大きさを取得する

$img = getimazesize('ファイル名');
$img[0] : 画像の幅
$img[1] : 画像の高さ
$img[2] : 画像形式定数
$img[3] : imgタグ用文字列(height="yyy" width="xxx")

exif_imagetype

イメージの型を定義する
返り値はgetimagesizeのインデックス2の返り値と同じになる
画像のサイズが必要なければ高速なのでこちらを使う

画像形式定数

定数
1 IMAGETYPE_GIF
2 IMAGETYPE_JPEG
3 IMAGETYPE_PNG
4 IMAGETYPE_SWF
5 IMAGETYPE_PSD
6 IMAGETYPE_BMP
7 IMAGETYPE_TIFF_II (intel byte order)
8 IMAGETYPE_TIFF_MM (motorola byte order)
9 IMAGETYPE_JPC
10 IMAGETYPE_JP2
11 IMAGETYPE_JPX
12 IMAGETYPE_JB2
13 IMAGETYPE_SWC
14 IMAGETYPE_IFF
15 IMAGETYPE_WBMP
16 IMAGETYPE_XBM
17 IMAGETYPE_ICO

image_type_to_extention

画像形式からファイルの拡張子を取得する
第二引数をfalseにするとドット(.)なしの拡張子を返す

getimazesize
//ファイル名から画像形式定数を取得
$img = getimazesize('ファイル名');

//画像形式定数から拡張子を取得
$type = image_type_to_extention($img[2]);
exif_imagetype
$type = image_type_to_extention(exif_imagetype('ファイル名'));
実際の返り値
$arr = array(IMAGETYPE_GIF,
IMAGETYPE_JPEG,
IMAGETYPE_PNG,
IMAGETYPE_SWF,
IMAGETYPE_PSD,
IMAGETYPE_BMP,
IMAGETYPE_TIFF_II,
IMAGETYPE_TIFF_MM,
IMAGETYPE_JPC,
IMAGETYPE_JP2,
IMAGETYPE_JPX,
IMAGETYPE_JB2,
IMAGETYPE_SWC,
IMAGETYPE_IFF,
IMAGETYPE_WBMP,
IMAGETYPE_XBM,
IMAGETYPE_ICO);

foreach ($arr as $value) {
    echo image_type_to_extension($value)."\t";
    echo image_type_to_extension($value,false)."\n";
}

/*
.gif	gif
.jpeg	jpeg
.png	png
.swf	swf
.psd	psd
.bmp	bmp
.tiff	tiff
.tiff	tiff
.jpc	jpc
.jp2	jp2
.jpx	jpx
.jb2	jb2
.swf	swf
.iff	iff
.bmp	bmp
.xbm	xbm
.ico	ico
*/
9
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?