画像の縦横比を崩さずにリサイズ出来るライブラリです。
画像変換処理にはSkiaSharpを利用します。
ImageResizeクラスの静的メソッドResizeを呼び出します。
byte[] bytes = ImageResize.Resize("ImageFilePath", 200, 100, ResizeMode.Default);
byte[] bytes = ImageResize.Resize("ImageFilePath", 200, 100, ResizeMode.Uniform);
byte[] bytes = ImageResize.Resize("ImageFilePath", 200, 100, ResizeMode.UniformToFill);
パラメータにリサイズ時の画像伸縮方法をResizeModeで指定します。
この250(w)x250(h) の画像を 200(w)x100(h) にリサイズした画像をSampleに示します。
ResizeMode | Description | Sample |
---|---|---|
Default | 何もしません。指定されたサイズ通りに画像の伸縮が発生します。 | |
Uniform | 縦横比を維持したままリサイズします。 元画像と縦横比が異なる場合は余白が出来ます。 |
|
UniformToFill | 縦横比を維持したままリサイズします。 元画像と縦横比が異なる場合は一部が欠落します。 |
※WPF/XAMLのStretch列挙型をイメージするとわかりやすいかも知れません。
その他Resizeメソッドのパラメータは以下のとおりです。
args | type | required | description |
---|---|---|---|
source | string byte[] stream SKCodec |
true | 変換元画像を指定します。 |
width | int | true | 横幅。 0を指定した場合、heightを基準に縦横比が変わらないようにします。 |
height | int | true | 縦幅。 0を指定した場合、widthを基準に縦横比が変わらないようにします。 |
mode | ResizeMode | true | リサイズモード。 |
backColor | SKColor | false | 背景色。Uniformで余白ができる場合に適用されます。 |
imgFmt | SKEncodedImageFormat | false | 出力する画像フォーマット。 SkiaSharpの都合上、jpeg, png, webpのみ指定できます。 |
quality | int | false | 画像出力時の品質。0~100で指定します。 デフォルトは90です。 |
fq | SKFilterQuality | false | SkiaSharpのリサイズメソッドの処理品質。 |