C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


■101476 / )  Re[2]: 写真のサムネイルの方向情報が正しく取りだせない
□投稿者/ 魔界の仮面弁士 (3578回)-(2023/03/01(Wed) 14:55:29)
No101475 (HattariB さん) に返信
>>exifの ID X112を取りだすと。rotation不要(=1)が帰ってくるのですが、
> extf ID:112=1ってのは、TopLeft(←が↑)らしいんですけど、それがなぜ回転不要なのかがわからない。
1 は、画素情報の先頭行(0th row)が top で、画素情報の先頭列(0th column)が left だということです。

> ポートレートで撮った写真をランドスケープで見る場合は回転が必要だけど、ポートレートで撮った写真をポートレートで見るなら、回転不要ですよね?
なるほど。私自身、仕様を読み解けていないので、画像が landscape / portrait の
いずれとなるのかについて、追加判断が必要になるのかどうかまでは把握できていません。

下記資料だと、0x112 の 値 1 が「1 = Horizontal (normal)」と書かれていた程度。
horizontal ってことは横長画像を基準としているのですかね?
https://exiftool.org/TagNames/EXIF.html

上記資料からリンクされている DC-008-Translation-2019-E.pdf (のアーカイブ)では、
0x0112 (=274) について下表のように記されていました。
でも日本語なら、下記の PDF の方がわかりやすいかも。(情報がちょっと古い?)
https://www.cipa.jp/std/documents/j/CIPA_DC-X008-2016-J.pdf


Value  0th Row     0th Column
-----  ----------  ----------
   1   top         left side
   2   top         right side
   3   bottom      right side
   4   bottom      left side
   5   left side   top
   6   right side  top
   7   right side  bottom
   8   left side   bottom
Other  (reserved)  (reserved)


0x0112 [Orientation] の仕様は追い切れていないのですが、
もし、landscape / portrait の追加判断が必要な場合、
それは単純に画像の縦横比で判断で良いのもなのか否か。
(仮に square だった場合はどうなるのか?)

あるいは、カメラの仰角を示す 0x9405 の [CameraElevationAngle] で無理やり疑似判断するとか?
0x0112 と違って記録されていないことも多いと思いますが、記録されていた場合、
中身は SRATIONAL 型(SLONG 分数値)で、値は -180 以上 180 未満だそうです。
分母が 0xFFFFFFFF の場合は不明値扱い。



■No101436 (笹子能 さん) に返信
> VBを使い写真のサムネイルの方向情報を取りだそうとしています。exifの ID X112を取りだすと。

サムネイルということは、
thumbnail image (IFD1) の 0x0112 [Orientation] でしょうか。
それとも main image (IFD0) の 0x0112 [Orientation] の方?

画像によっては 0x0112 [Orientation] 以外に、メーカー独自タグの
[LevelOrientation] や [CameraOrientation] などをもっている場合がありますが、
これらの仕様が Web 上で見つけられない…。

返信 編集キー/


管理者用

- Child Tree -