最近、ASP.NET MVC 4アプリケーションで画像のサイズを動的に変更するために、ImageResizer.Net overGDI +の使用を開始しました。
ImageResizerのみを使用して、画像(バイト配列として読み込まれる)の実際の解像度(DPI、PPI、あなたがそれを呼びたいものは何でも)を決定する方法はありますか?現在、次のようなワークフローがあり、必要に応じて画像のサイズを指定された低解像度に変更します。
//pseudo-code
var image = (Bitmap)Bitmap.FromStream(contentStream)
var resX = image.HorizontalResolution;
var resY = image.VerticalResolution;
//calculate scale factor
//determine newHeight and newWidth from scale
var settings = new ResizeSettings("width={newWidth}&height={newHeight}")
var newImage = ImageBuilder.Current.Build(image, someNewImage, settings);
これは正常に機能しますが、GDI +とImageResizerが混在しており、同じデータのストリームの開閉がたくさんあります(実際のコードは少し冗長で、多くのusing
ステートメントがあります)。
ImageResizerだけを使用して水平解像度と垂直解像度を決定する方法はありますか?ドキュメントにすぐに何も見つかりませんでした。
今のところ、マネージAPIを使用していますが、最終的にはMVCルーティングを使用する予定です。