画像に透かしを追加するC#

画像の透かしは通常、コンテンツの所有権を主張するために使用されます。一方、画像には、不正使用や偽造を防ぐために透かしが入れられています。さまざまな場合に、Webまたはデスクトップアプリケーション内の透かし機能を自動化する必要があります。このようなシナリオでは、この記事では、C#を使用してプログラムで画像に透かしを追加する方法について説明します。これは、画像のバッチに一度に透かしを入れる必要がある場合にも役立ちます。それでは始めましょう。

画像に透かしを追加するC#API

画像に透かしを追加するには、Aspose.Imaging for .NETを使用します。幅広い画像形式をサポートする強力な画像処理APIです。さらに、APIを使用すると、画像を簡単に操作できます。 APIのバイナリをダウンロードするか、NuGetを使用してインストールすることができます。

PM> Install-Package Aspose.Imaging

C#の画像に透かしを追加する

以下は、C#を使用して画像に透かしを追加する手順です。

  • Imageクラスを使用して画像をロードします。
  • Graphicsクラスのインスタンスを作成し、Imageオブジェクトで初期化します。
  • Fontクラスを使用して、フォントファミリ、サイズ、および面を設定します。
  • SolidBrushクラスのインスタンスを作成し、色などのプロパティを設定します。
  • StringFormatクラスをインスタンス化して、テキストの配置を設定します。
  • Graphics.DrawString(String, Font, SolidBrush, 0, 0, StringFormat)メソッドを使用して、画像に透かしを追加します。
  • Image.Save(String)メソッドを使用して画像を保存します。

次のコードサンプルは、C#で画像に透かしを追加する方法を示しています。

// 既存のPNG画像をロードする
using (Image image = Image.Load("image.png"))
{
    // 透かしテキストを使用してStringオブジェクトを宣言します
    string theString = "This is watermark";

    // Graphicsクラスのインスタンスを作成して初期化し、SizeFのオブジェクトを初期化して画像のサイズを保存します
    Graphics graphics = new Graphics(image);
    SizeF sz = graphics.Image.Size;

    // Fontのインスタンスを作成し、Font Face、Size、Styleで初期化します
    Font font = new Font("Times New Roman", 20, FontStyle.Bold);

    // SolidBrushのインスタンスを作成し、そのさまざまなプロパティを設定します
    SolidBrush brush = new SolidBrush();
    brush.Color = Color.Red;
    brush.Opacity = 0;

    // StringFormatクラスのオブジェクトを初期化し、そのさまざまなプロパティを設定します
    StringFormat format = new StringFormat();
    format.Alignment = StringAlignment.Center;
    format.FormatFlags = StringFormatFlags.MeasureTrailingSpaces;

    // 画像に文字列を描画します出力をディスクに保存します
    graphics.DrawString(theString, font, brush, 0, 0, format);
    image.Save("watermarked.jpg");
}
画像に透かしを追加するC#

C#の画像に斜めの透かしを追加する

さまざまな場合に、透かしが画像に斜めに適用されます。このため、Aspose.Imaging for .NETを使用すると、透かしテキストを特定の角度に変換できます。以下は、画像に斜めの透かしを追加する手順です。

  • Imageクラスを使用して画像をロードします。
  • Graphicsクラスのインスタンスを作成し、Imageオブジェクトで初期化します。
  • Fontクラスを使用して、フォントファミリ、サイズ、および面を設定します。
  • SolidBrushクラスのインスタンスを作成し、色などのプロパティを設定します。
  • StringFormatクラスをインスタンス化して、テキストの配置を設定します。
  • Matrixクラスのインスタンスを作成し、変換角度を設定します。
  • MatrixオブジェクトをGraphics.Transformプロパティに割り当てます。
  • Graphics.DrawString(String, Font, SolidBrush, 0, 0, StringFormat)メソッドを使用して透かしを追加します。
  • Image.Save(String)メソッドを使用して画像を保存します。

次のコードサンプルは、C#を使用して画像に斜めの透かしを追加する方法を示しています。

// 既存のPNG画像をロードする
using (Image image = Image.Load("Image.png"))
{
    // 透かしテキストを使用してStringオブジェクトを宣言します
    string theString = "45 Degree Rotated Text";

    // Graphicsクラスのインスタンスを作成して初期化し、SizeFのオブジェクトを初期化して画像のサイズを保存します
    Graphics graphics = new Graphics(image);
    SizeF sz = graphics.Image.Size;

    // Fontのインスタンスを作成し、Font Face、Size、Styleで初期化します
    Font font = new Font("Times New Roman", 20, FontStyle.Bold);

    // SolidBrushのインスタンスを作成し、そのさまざまなプロパティを設定します
    SolidBrush brush = new SolidBrush();
    brush.Color = Color.Red;
    brush.Opacity = 0;

    // StringFormatクラスのオブジェクトを初期化し、そのさまざまなプロパティを設定します
    StringFormat format = new StringFormat();
    format.Alignment = StringAlignment.Center;
    format.FormatFlags = StringFormatFlags.MeasureTrailingSpaces;

    // 変換用のMatrixクラスのオブジェクトを作成します
    Matrix matrix = new Matrix();

    // 最初に平行移動、次に回転                
    matrix.Translate(sz.Width / 2, sz.Height / 2);
    matrix.Rotate(-45.0f);

    // マトリックスを介して変換を設定します
    graphics.Transform = matrix;

    // 画像に文字列を描画します出力をディスクに保存します
    graphics.DrawString(theString, font, brush, 0, 0, format);
    image.Save("watermarked.png");
}
画像C#に斜めの透かしを追加します

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

評価の制限なしにAPIを試してみたい場合は、無料の一時ライセンスを取得できます。

結論

この記事では、C#を使用して画像に透かしを追加する方法を学習しました。さらに、透かしテキストを特定の角度に変換する方法を見てきました。 ドキュメントを使用して、C#画像処理APIの詳細を調べることができます。ご不明な点やご質問がございましたら、フォーラムまでお問い合わせください。

関連項目