ywork2020.com

Title

画像の大きさを取得する

目次 (INDEX)

getimagesize とは

ここで説明する getimagesize とは次の語句からなる PHP の関数です。
get
読み: ゲット
意味: 取得
image
読み: イメージ
意味: 画像
size
読み: サイズ
意味: 大きさ

目次に戻る

getimagesize 関数の概要

この関数は、引数に与えた 画像のファイル URL を元に、主に その画像の大きさの情報を配列、及び連想配列として取得します。

取得する配列の要素数は、画像ファイルのファイルタイプによって異なるので、一概には言えませんが、最大で 7 つの要素をもつ配列となります。

また、URL に与えたファイルが JFIF の形式だった場合、第二引数に与えた配列に追加情報が代入されます。

目次に戻る

構文

サンプルを見る前に構文を確認しておきます。

$arrSize = getimagesize(strFileNameAndUrl, $arrImageInfo);
  • $arrSize: 画像のサイズ情報が返された結果配列です。
  • strFileNameAndUrl: 画像ファイルのファイル名を含む URL です。
  • $arrImageInfo: 指定した画像が JFIF ファイルだった場合、この配列には指定したファイルの情報が代入されます。

目次に戻る

サンプルコードと実行結果

ここでは、getimagesize() を使って png 形式の画像ファイルのサイズ情報を取得します。

getimagesize() から戻り値として得られる画像のサイズ情報は配列に代入されます。 この配列が幾つの要素になるかは、画像のファイル形式によって異なりますので、その部分の処理も含めて、 ここでは、一通りの配列要素の値を取得するように工夫してみました。

なお、getimagesize() のサンプルとは少し別の話になるので詳細は割愛しますが、配列の全ての要素と値を取得するには var_dump() を使用すると一気に解決できるでしょう。

サンプルコード: HTML ( 拡張子は .php )
<body>
<?php
	... 
?>
</body>
  • 02: <?php (php のコードを記述するための開始タグです。)
  • 03: ... (この行は [ サンプルコード: PHP ] の内容の部分です。)
  • 04: ?>(php の記述を終了するための終了タグです。)
  • ここでは HTML ドキュメントの body 要素内に php の開始タグと終了タグを置いていますが、 開始タグと終了タグはドキュメントのどの部分に設置しても構いませんし、ドキュメント内の複数の場所に分けて記述しても問題ありません。 また、HTML ドキュメントとしてではなく、純粋に php のコードのみを記述しても構いません。 ただし、どの記述方法であろうともファイルの拡張子は .php であることが必要です。
サンプルコード: PHP
<?php
	$arrImageType = array("UNKNOWN", "GIF", "JPEG", "PNG", "SWF", "PSD", "BMP", "TIFF_II", "TIFF_MM", "JPC", "JP2", "JPX", "JB2", "SWC", "IFF", "WBMP", "XBM", "ICO", "COUNT");
	$arrSize = getimagesize("size-img-ywork.png", $arrImageInfo);
	for($i = 0; $i < count($arrSize); $i++){
		if(array_key_exists($i, $arrSize) == true){
			if($i != 2){
				echo("
key: {$i} => {$arrSize[$i]}"); } else{ echo("
key: {$i} => {$arrSize[$i]}({$arrImageType[$arrSize[$i]]})"); } } } if(isset($arrSize["bits"])){echo("
key: bits => {$arrSize["bits"]}");} if(isset($arrSize["channels"])){echo("
key: channels => {$arrSize["channels"]}");} if(isset($arrSize["mime"])){echo("
key: mime => {$arrSize["mime"]}");} ?>
  • 04-13: (この処理で $arrSize 配列[インデックス番号] の値を取得、表示しています。)
  • 14, 15, 16: ($arrSize の連想配列の値を取得、表示しています。連想配列の key がない場合は、その行の処理は行いません。)
実行結果:
画像サイズのサンプル
key: 0 => 150
key: 1 => 100
key: 2 => 3(PNG)
key: 3 => width="150" height="100"
key: bits => 8
key: mime => image/png

目次に戻る

画像のファイルタイプを表す添え字と対応タイプ

ここでは サンプルコードの 02 行目で示しているファイルタイプ ( 拡張子 ) の対応表を掲載しておきます。

なお、ファイルタイプを示す添え字は [2] となりますので、サンプルコードでは $arrSize[2] の部分になります。

添え字 ( key ) ファイルタイプ
0 UNKNOWN
1 GIF
2 JPEG
3 PNG
4 SWF
5 PSD
6 BMP
7 TIFF_II
8 TIFF_MM
9 JPC
10 JP2
11 JPX
12 JB2
13 SWC
14 IFF
15 WBMP
16 XBM
17 ICO
18 COUNT

目次に戻る