読者です 読者をやめる 読者になる 読者になる

kagasu’s blog

備忘録

C# ImageProcessorを使う

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

Ⅰ. はじめに

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

System.Drawingが使えない.NET Coreやmonoで利用したり、
.NETでも十分高機能なライブラリとして利用できます。
現時点で、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());
}