- VisualC#
- 2016-12-07
スマートフォンやデジカメで撮影した写真にはどの方向(縦か横)で撮影されたか、という情報も格納されています。
画像方向(Orientation)というデータです。
画像を扱うプログラムを組んでいて、画像方向を編集する必要があったのでメモしておきます。
using System.Drawing; string imgFile = "読み込むファイル"; string saveFile = "保存先ファイル"; //画像を読み込む Bitmap bmp = new Bitmap(imgFile); for (int i = 0; i < bmp.PropertyItems.Length; i++) { Imaging.PropertyItem pi = bmp.PropertyItems[i]; //Exif情報から画像方向を取得 if (pi.Id == 0x0112) { //値を変更。強制的に横向きとする pi.Value = System.Text.Encoding.ASCII.GetBytes("1\0"); pi.Len = pi.Value.Length; //設定する bmp.SetPropertyItem(pi); //目的の値が見つかればループを抜ける break; } } //保存する bmp.Save(saveFile, Imaging.ImageFormat.Jpeg); //後処理 bmp.Dispose();
Exif情報のタグID等は以下URLを参照してください。
http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/EXIF.html