備忘録

備忘録

C# で ImageProcessorを使う

f:id:kagasu:20161008034407p:plain
http://imageprocessor.org/
https://github.com/JimBobSquarePants/ImageProcessor

Ⅰ. はじめに

ImageProcessorは画像処理ライブラリです。

現時点で、2値化処理、エッジ検出、色反転、縮小、拡大、切り取り、等様々なフィルタ処理に対応しています。

Ⅱ. インストール

インストールはNuGetから行います。

Ⅲ. サンプルコード

ファイルからの読み込み

// ファイルの読み込み
byte[] source = File.ReadAllBytes(file);

using (MemoryStream inStream = new MemoryStream(source))
using (MemoryStream outStream = new MemoryStream())
using (ImageFactory imageFactory = new ImageFactory())
{
  imageFactory.Load(inStream)
              .Resize(new Size(100, 100)) // 100x100にリサイズ
              .Format(new PngFormat()) // PNG形式
              .DetectEdges(new Laplacian3X3EdgeFilter(), true) // エッジ検出
              .Filter(MatrixFilters.Invert) // 色反転
              .Quality(70) // クオリティ
              .Save(outStream);
  
   // ファイルに書き込み
   File.WriteAllBytes($"out.png", outStream.ToArray());
}

Bitmap からの読み込み

var bmp = new Bitmap(width, height);
var image = new ImageFactory()
  .Load(bmp)
  .Rotate(90) // 時計回りに90度回転
  .Image;

bmp = new Bitmap(image);

Ⅳ. その他

他にも優秀な画像処理ライブラリはこちらにまとまっています。

.NET Core向けの画像ライブラリ