SunMonTueWedThuFriSat
May
5
2
1
1
3
1
2
1
1
0
1
1
1
2
2
0
2
4
2
0
0
3
0
1
2
2
8
3
Jun
2
8
2
1
0
4
2
3
0
3
3
0
1
2
6
3
4
1
6
2
2
4
2
0
4
2
1
1
2
3
6
2
6
0
0
Jul
6
1
1
0
0
1
2
1
2
1
2
1
1
2
1
0
0
0
1
0
0
2
0
0
1
5
2
3
Aug
6
4
0
1
1
1
2
6
3
0
1
0
0
3
3
8
1
1
3
1
1
0
2
1
1
3
0
2
3
3
2
0
4
1
2
Sep
0
1
3
3
1
0
3
0
1
1
0
3
1
0
3
6
14
1
0
0
0
8
2
3
1
0
0
2
Oct
6
1
0
0
1
0
3
0
0
1
0
2
0
1
0
0
0
3
5
0
0
0
0
0
0
2
1
0
Nov
0
1
0
1
0
5
0
1
4
1
0
0
0
0
2
0
1
2
2
0
0
0
0
0
0
2
1
1
1
0
5
3
7
0
2
Dec
4
2
0
2
1
0
0
1
2
1
0
0
0
0
0
0
1
0
3
2
4
1
7
4
1
3
11
2
Jan
3
2
2
9
2
1
11
3
3
3
5
6
3
3
13
6
2
1
1
3
8
4
4
5
1
3
1
5
Feb
5
4
2
2
2
3
0
0
5
2
2
0
0
0
1
0
1
0
2
1
3
0
4
4
3
3
0
3
Mar
4
0
5
1
0
1
1
0
0
1
3
1
1
2
1
1
1
4
0
1
2
1
1
1
0
1
2
0
3
1
3
4
0
2
3
Apr
1
1
0
1
0
4
5
7
3
2
1
2
1
1
2
0
0
1
0
2
2
2
1
3
1
2
0
9
May
4
7
0
0
🍨Re:5259◆JPEGやPNGの縦横サイズが取得できないケースとして、過去には以下のようなファイルがありました。
- ファイル拡張子は .png なのに中身はJPEGデータ。
- ファイル拡張子は .jpg なのに中身はPNGデータ。
どういう状況でそんなファイルが作成されるのか謎ですが(^_^;)、画像加工ソフトで「保存形式をJPEGにしつつ保存ファイル名には .png の拡張子を指定する」とかでしょうかね……?最近のブラウザも画像加工ソフトも、ファイル拡張子が間違っていても普通に画像を表示してくれるんですね。そのときに知りました。
親切な画像ビューアは、「このファイルは拡張子がjpgですが中身はPNGです。拡張子を変更しますか?」のような感じで訊ねてくれもしましたけども。
てがろぐは、ファイル拡張子を信じてバイナリを読みますので、拡張子が異なる場合には縦横サイズ情報は取得できません。
というわけで、縦横サイズが取得できない場合は、本当に拡張子が正しいのかもご確認下さい。
あと、拡張子が .jpg でも、JPEG 2000 とか Progressive JPEG のような特殊な形式だとバイナリの記録方法が異なるので読めないと思います。(試したことはないんですが。)
まあ何にせよ、画像インデックスファイル(index.xml)には固定的にサイズを記録する方法が用意されていますから、PHP側で正確な値を取得できるなら、その値をindex.xmlに書き込んでしまえば確実ではありますね。