PHP 画像のサイズ(width、height)を取得する方法 | WordPress
PHPで画像サイズ(width、height)を取得する方法です。
WordPressでアイキャッチ画像を設定した際、width、heightといた画像サイズを取得できないかと調べたところ、「getimagesize()」を利用すれば対応できることがわかりました。
ここでは PHPで画像のサイズ(width、height)を取得する方法 を紹介します。
目次
画像サイズを取得する「getimagesize()」関数とは?
「getimagesize()」は、画像の大きさを取得する関数です。
getimagesize(string $filename, array &$image_info = null): array|false
第一引数に、URLや相対パスで画像ファイルを指定すれば、画像の幅や高さ、形式などの画像情報を、配列で返してくれます。
「getimagesize()」関数の戻り値
配列に格納されているキーと値は下記の通りです。
キー | 説明 |
---|---|
0 | 画像の幅 |
1 | 画像の高さ |
2 | 画像の形式 |
3 | imgタグで直接利用できる文字列 例:width="1920" height="1080" |
bits | 個々の色のビット数 |
channels | 画像のチャンネル 例:RGB:3/CMYK: 4 |
mime | 画像のMIMEタイプ 例:image/jpeg" |
詳しくは下記のサイトを確認ください。
「getimagesize()」関数で画像サイズを取得する
早速、「getimagesize()」関数で画像サイズを取得してみましょう。
仮に、このサイトのロゴを対象とした場合、下記の画像情報が取得できます。
$image_info = getimagesize("https://saka-en.com/wp-content/themes/saka-en3/images/logo.png");
var_dump($image_info);
取得した配列は下記のようになりました。
array(6) {
[0]=> int(430)
[1]=> int(60)
[2]=> int(3)
[3]=> string(23) "width="430" height="60""
["bits"]=> int(8)
["mime"]=> string(9) "image/png" } テスト
WordPressアイキャッチ画像のサイズを取得する
続いて、WordPressアイキャッチ画像のサイズ取得方法です。
下記のコードで対応できます。
// 投稿ページでアイキャッチ画像の設定がある場合
if ( is_singular() && has_post_thumbnail() ) {
// 画像情報を取得する。
$image_info = getimagesize( get_the_post_thumbnail_url( get_the_ID(), 'full' ) );
var_dump($image_info);
}
「get_the_post_thumbnail_url」は、アイキャッチ画像(サムネイル)のURLを取得する関数です。
これを「getimagesize()」関数と組み合わせることで、画像サイズを取得できます。
まとめ
PHPで画像サイズ(width、height)を取得する方法を紹介しました。
「getimagesize()」は、第一引数に画像ファイルのURLやパスを指定するだけなので、使い方も簡単です。画像の幅や高さなど、取得できる情報もそろっているので便利ですね。ガンガン使っていこう。
おつかれさまでした。