13
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ImageSharp 基本操作

13
Last updated at Posted at 2017-09-23

サーバーサイドで System.Drawingを使ってはダメ、らしいのでいろいろ調査した結果、SixLabors/ImageSharp とやらがよさげ、らしい。

サーバーサイドで System.Drawingを使ってはダメ
http://qiita.com/kazuk/items/9758b90b2a480454215a

SixLabors/ImageSharp
https://github.com/SixLabors/ImageSharp

インストール

nugetで"SixLabors.ImageSharp"インストールする。現在のバージョンは1.0.0-beta0001なので、パッケージマネジャー画面では「プレリリースを含める」にチェックを入れないと表示されない。

基本操作

using SixLabors.ImageSharp; を追加しないと拡張メソッドが使えない。

画像のサイズを計測する

using SixLabors.ImageSharp;
using (Image<Rgba32> image = Image.Load("c:/var/file/sample.jpg"))
{
   var height = image.Height;
   var width  = image.Width;
}

画像を縮小する

サムネイル画像作成とか。
サンプルは バイト配列に結果を入れるけども Saveメソッドにファイル名を設定すれば直接ファイルに保存できる。

using SixLabors.ImageSharp;
byte[] content;
using (Image<Rgba32> image = Image.Load("c:/var/file/sample.jpg"))
{
    // 画像の操作をMutateメソッドで行う
    image.Mutate(x =>
    {
        x.Resize(image.Width / 4, image.Height / 4)
        ;
    });
    using (var stream = new MemoryStream())
    {
        var encoder = new SixLabors.ImageSharp.Formats.Jpeg.JpegEncoder();
        image.Save(stream, encoder);
        content = stream.GetBuffer();
    }
    // 結果画像を保存
}

他

SixLaborsのgithubに ImageSharp.Web ってのがあるけどよくわからん。

13
13
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?