C# で SVG カラー マトリックスを使用した彩度効果

インターネット上の一部の画像が明るすぎたり、色が正しくなかったりすることに気づいたことがありますか?これは飽和効果と呼ばれる現象によるものです。この記事では、C# で SVG カラー マトリックスを使用して彩度効果を実現する方法を学習します。

まず、彩度効果について学び、C# SVG API を見て SVG カラー マトリックス フィルターを適用します。次に、カラー マトリックスを使用して画像の色を調整することにより、彩度効果を修正する方法の手順を説明します。最後に、さらなる機能強化のための便利なリンクを提供します。それでは始めましょう!

この記事では、次のトピックについて説明します。

  1. 彩度効果とSVGカラーマトリックスとは
  2. カラー マトリックスを使用した彩度効果のための C# SVG API
  3. 彩度効果に SVG カラー マトリックスを使用する方法
  4. C# でカラー マトリックスを使用して彩度効果を作成する

彩度効果と SVG カラー マトリックスとは

彩度効果は、画像をより鮮やかに見せるために使用される一般的な画像処理技術です。色の濃さを表しています。

飽和効果は、私たちの脳が色を処理する方法によって引き起こされます。画像を見ると、脳は自動的に色を調整して、より自然に見えるようにします。ただし、画像の色が多すぎたり、色のバランスが均一でなかったりすると、脳が画像を処理するのが難しくなり、飽和効果が発生する可能性があります。

SVG フィルター要素を使用して彩度効果を実現できます。変換マトリックスに基づいて色を変更するための色変換用のフィルターを提供します。

カラー マトリックスを使用した彩度効果のための C# SVG API

彩度効果は、カラー マトリックスを使用する特殊なケースです。 Aspose.SVG for .NET API を使用して、 フィルター プリミティブの彩度操作を使用します。この API により、ソフトウェアに依存することなく、SVG ファイルの読み込み、解析、レンダリング、作成、一般的な形式 への変換が可能になります。

APIのDLLをダウンロードするか、NuGetを使ってインストールしてください。

PM> Install-Package Aspose.SVG

彩度効果に SVG カラー マトリックスを使用する方法

は、入力画像の各ピクセルの RGBA チャネルにマトリックス変換を適用します。以下の手順に従って、彩度効果に SVG 要素を使用できます。

  1. SVG ドキュメントを定義し、SVG 名前空間 URL を設定します。
  2. image 要素と filter 要素を作成します。
  3. グラフィック要素を追加します。
  4. feColorMatrix 要素を作成し、filter 要素に追加します。
  5. 出力 SVG イメージを保存します。

次のセクションでは、これらの手順を C# コードに変換し、SVG で彩度効果を作成する方法について説明します。

C# でカラー マトリックスを使用して彩度効果を作成する

以下の手順に従って、 要素を使用して彩度効果を作成できます。

  1. まず、SVGDocument クラスのインスタンスを作成します。
  2. 次に、ルート SVG 要素にアクセスし、SVG の名前空間 URL を指定します。
  3. 次に、SVGImageElement クラス オブジェクトを初期化します。
  4. その間に、SVGImageElement の画像パスとその他のプロパティを設定します。
  5. 次に、SVGDefsElement クラス オブジェクトを定義し、ルート要素に追加します。
  6. 次に、SVGFilterElement クラス オブジェクトを作成し、SVGDefsElement に追加します。
  7. 次に、SVGFEColorMatrixElement クラス オブジェクトを定義します。
  8. 次に、必要な属性 ig type: saturate を設定します。
  9. その後、SVGFEColorMatrixElement を SVGFilterElement に追加します。
  10. 最後に、Save() メソッドを使用して出力 SVG ファイルを保存します。

次のコード サンプルは、C# でカラー マトリックスを使用して彩度効果を作成する方法を示しています。

// このコード例は、C# でカラー マトリックスを使用して彩度効果を作成する方法を示しています。
// SVGDocument のインスタンスを作成する
var document = new SVGDocument();

// ドキュメントのルート svg 要素を取得する
var svgElement = document.RootElement;

const string SvgNamespace = "http://www.w3.org/2000/svg";

var imageElement = (SVGImageElement)document.CreateElementNS(SvgNamespace, "image");
imageElement.Href.BaseVal = @"C:\Files\lighthouse.jpg";
imageElement.Height.BaseVal.ConvertToSpecifiedUnits(SVGLength.SVG_LENGTHTYPE_PX);
imageElement.Width.BaseVal.ConvertToSpecifiedUnits(SVGLength.SVG_LENGTHTYPE_PX);
imageElement.Height.BaseVal.Value = 640;
imageElement.Width.BaseVal.Value = 480;
imageElement.X.BaseVal.Value = 20;
imageElement.Y.BaseVal.Value = 20;
imageElement.SetAttribute("filter", "url(#CM)");
svgElement.AppendChild(imageElement);

// defs 要素を作成し、svgElement に追加する
Aspose.Svg.SVGDefsElement defsElement = (Aspose.Svg.SVGDefsElement)document.CreateElementNS(SvgNamespace, "defs");
svgElement.AppendChild(defsElement);

// フィルター要素を作成し、defsElement に追加します
Aspose.Svg.SVGFilterElement filterElement = (Aspose.Svg.SVGFilterElement)document.CreateElementNS(SvgNamespace, "filter");
defsElement.AppendChild(filterElement);

// feColorMatrix 要素を作成する
var feColorMatrixElement = (SVGFEColorMatrixElement)document.CreateElementNS(SvgNamespace, "feColorMatrix");
feColorMatrixElement.In1.BaseVal = "SourceGraphic";
feColorMatrixElement.SetAttribute("type", "saturate");
feColorMatrixElement.SetAttribute("values", "2");
filterElement.Id = "CM";

// フィルター要素に追加
filterElement.AppendChild(feColorMatrixElement);

// SVG ドキュメントを保存する
document.Save("C:\\Files\\ColorEffect.svg");
ソース画像 lighthouse.jpg

ソース入力画像

SVG カラー マトリックスを使用した彩度効果

C# で SVG カラー マトリックスを使用した彩度効果

<svg xmlns="http://www.w3.org/2000/svg">
    <image href="file:///C:/Files/lighthouse.jpg" height="640" width="480" x="20" y="20" filter="url(#CM)"/>
    <defs>
        <filter id="CM">
            <feColorMatrix in="SourceGraphic" type="saturate" values="2"/>
        </filter>
    </defs>
</svg>

無料の API ライセンスを取得する

無料の一時ライセンスを取得して、評価制限なしでライブラリを試すことができます。

結論

この記事では、画像の彩度効果について学びました。また、C# で SVG カラー マトリックス フィルターを使用して彩度カラー効果を適用する方法も確認しました。さらに、ドキュメンテーション を使用して Aspose.SVG for .NET の詳細を学び、API によって提供されるさまざまな機能を調べることができます。ご不明な点がございましたら、無料サポート フォーラム までお気軽にお問い合わせください。

関連項目