オープンソースC# .NETライブラリ(画像操作用)
無料の .NET API を介して、オンザフライで PNG、JPEG、GIF、TIFF 画像の読み取り、書き込み、変更、サイズ変更、変換を行います。
ImageProcessor は、コンピューター プログラマーが独自の .NET アプリケーション内でオンザフライで画像を操作できるようにする無料のオープン ソース .NET 画像処理ライブラリです。このライブラリは非常に高速で、安定しており、拡張可能で、ユーザー フレンドリーで、優れた機能が含まれています。このライブラリは、JPG、JPEG、PNG、GIF、PNG8 (アニメーションと静的の両方)、BMP、および TIFF ファイル形式の操作を完全にサポートしています。
ライブラリは主に2つのサブライブラリに分けられます。 最初のライブラリは ImageProcessor として知られており、デスクトップやアプリケーションと連携するための完全なサポートを提供します。 第2ライブラリ ImageProcessor. SP用Webサイト構築 ETおよびWebアプリケーションと連携するための完全なサポートを提供します。 主に第一部について議論し、開発者がアプリケーション内で利用する方法について説明します。
始める ImageProcessor
安定版リリースは NuGet で入手できます。 ImageProcessor は、Windows OS で実行されている .NET Framework でのみサポートされます。 .NET Core または NET 5+ で使用しないでください。
NuGet で ImageProcessor をインストールします。
NuGet\Install-Package ImageProcessor -Version number
C#ライブラリを介して画像にフィルタを適用
オープン ソースの ImageProcessor ライブラリを使用すると、C# .NET 開発者は独自のアプリケーション内で簡単に画像をフィルター処理できます。 MatrixFilters クラスを使用して、正しいフィルターを画像に割り当ててください。 BlackWhite、Comic、Gotham、GreyScale、HiSatch、Invert、Lomograph、LoSatch、Polaroid、Sepia など、画像に適用できるフィルターの種類がいくつかあります。
テキストベースの透かしを画像に追加する
オープンソースImageProcessorライブラリを使用して、画像やテキスト透かしを簡単に配置できます。 ライブラリは、数行のコードで透かしを画像に追加するための完全なサポートを提供します。 必須クラスには、テキストベースの透かしを画像に追加するために必要なすべてのプロパティが含まれています。 テキストカラー、フォントサイズ、スタイル、オパシティ、ポジション、ドロップシャドウなどを選択します。
.NETを用いたクロップ画像
ImageProcessor はソフトウェア開発者に現在のイメージをカスタムの場所およびサイズに作ることができる能力を与えます。 ドロップは、画像や写真を編集する際に考慮する最も重要なまだ簡単なプロセスです。 ユーザーが自分のニーズに応じて画像をトリミングするのに役立ついくつかのプロパティを提供します。 左、上、右、下、CropModeなど。
C# .NET を使用したクロップ画像
namespace ImageProcessor.Tests.Processing
{
public class CropTests
{
private const string category = "Crop";
[Fact]
public void CropSettingsConstructorSetsOptions()
{
const int Left = 1;
const int Top = 1;
const int Right = 1;
const int Bottom = 1;
var expected = new CropOptions(Left, Top, Right, Bottom, CropMode.Percentage);
Assert.Equal(expected.Left, Left);
Assert.Equal(expected.Top, Top);
Assert.Equal(expected.Right, Right);
Assert.Equal(expected.Bottom, Bottom);
}
[Fact]
public void CropSettingsConstructorChecksInput()
{
Assert.Throws(() => new CropOptions(-1, 0, 0, 0));
Assert.Throws(() => new CropOptions(0, -1, 0, 0));
Assert.Throws(() => new CropOptions(0, 0, -1, 0));
Assert.Throws(() => new CropOptions(0, 0, 0, -1));
}
[Fact]
public void CropConstructorSetsOptions()
{
var expected = new CropOptions(1, 2, 3, 4, CropMode.Percentage);
var processor = new Crop(expected);
Assert.Equal(expected, processor.Options);
}
[Fact]
public void FactoryCanCropRectangle()
{
// Test our issue crop.
TestFile file = TestFiles.Jpeg.EXIFCropIssue559;
var bounds = new Rectangle(939, 439, 2778, 2778);
using (var factory = new ImageFactory())
{
factory.Load(file.FullName)
.Crop(bounds)
.SaveAndCompare(file, category, bounds);
}
}
[Fact]
public void FactoryCanCropPercentile()
{
// Test our issue crop.
TestFile file = TestFiles.Jpeg.Penguins;
var settings = new CropOptions(15, 25, 10, 5, CropMode.Percentage);
using (var factory = new ImageFactory())
{
factory.Load(file.FullName)
.Crop(settings)
.SaveAndCompare(file, category, settings);
}
}
}
}