【C#】Bitmapの解像度(DPI)の取得設定

画像ファイルのプロパティをエクスプローラーで表示すると、下図のように水平方向の解像度、垂直方向の解像度が表示されますが、ほとんどの場合、Windowsでは96dpiと表示される場合が多いのですが、この解像度の値をC#で取得、設定(変更)してみたいと思います。

 

 

解像度を設定するにはBitmapクラスのSetResolutionメソッドを用いて、以下のように設定します。

var bmp = new Bitmap("Mandrill.bmp");
bmp.SetResolution(400, 400);

解像度を取得するにはGetResolutionではなくて、HorizontalResolutionプロパティVerticalResolutionプロパティが用意されています。

 

(コード例)

Console.WriteLine(String.Format("水平分解能 = {0}, 垂直分解能 = {1}", bmp.HorizontalResolution, bmp.VerticalResolution));

(実行結果)

 

試しに下記のようなコードで、Bitmap,Jpeg,Png,Tiffファイルで解像度の設定が有効になっているか?確認してみましたが、どれも設定されていました。

var bmp = new Bitmap("Mandrill.bmp");
bmp.Save("Mandrill400.bmp", System.Drawing.Imaging.ImageFormat.Bmp);
bmp.Save("Mandrill400.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
bmp.Save("Mandrill400.png", System.Drawing.Imaging.ImageFormat.Png);
bmp.Save("Mandrill400.tif", System.Drawing.Imaging.ImageFormat.Tiff);

ただし、Bitmapファイル(*.bmp)だけはファイルのプロパティで解像度が表示されなかったので、エクスプローラーで表示項目を増やして解像度を確認しました。

 

 

画像処理のためのC#テクニックへ戻る

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください