Pythonで画像にウォーターマークを自動で挿入する方法

※本ページはアフィリエイト広告を利用しています

オリジナルの画像やアートワークを保護することは、クリエイターや企業にとって非常に重要です。

画像の無断使用やコピーを防ぐための一つの効果的な方法は、ウォーターマークの追加です。ウォーターマークは、著作権情報や所有者の識別情報を含むことができ、画像の権利を保護する同時に、その流通を監視する手段を提供します。

この記事では、PythonとPILライブラリを使用して、画像にウォーターマークを追加する方法について、簡単かつ効果的な手順をご紹介します。

目次

ライブラリのインストール

ウォーターマークの挿入に必要なライブラリPillowをインストールします。

コマンドラインで以下のコマンドを実行してください。

pip install Pillow

作成したPythonコード

このコードは、PythonのPILライブラリを使用して、指定された画像にウォーターマークを追加する処理を行います。

まず、入力された画像をRGBAモードに変換し、透明度を扱えるようにします。次に、デフォルトのフォントを使用してウォーターマークのテキストのサイズを計算し、画像の右下隅に位置を決定します。ウォーターマークのテキストは半透明の白色で描画されます。

最後に、画像をRGBモードに変換してJPEG形式で保存します。この手順により、元の画像に透明度を持つテキストウォーターマークを追加し、新しい画像ファイルとして出力します。

コード解説

  1. 必要なライブラリ(PIL)からImageImageDrawImageFontをインポートします。
  2. add_watermark関数を定義します。この関数は、入力画像のパス(input_image_path)、出力画像のパス(output_image_path)、ウォーターマークとして追加するテキスト(watermark_text)を引数に取ります。
  3. 入力画像を開き、Image.openメソッドを使用してoriginal_imageオブジェクトを作成します。
  4. 元の画像をconvertメソッドを使ってRGBAモードに変換し、watermark_imageオブジェクトを作成します。これにより、透明度情報を含む画像にウォーターマークを追加できます。
  5. ImageDraw.Drawメソッドを使用して、watermark_imageに描画機能を追加します。
  6. デフォルトフォントを使用するためにImageFont.load_default()を呼び出します。
  7. draw.textbboxメソッドを使用してウォーターマークテキストの境界ボックスを取得し、テキストの幅と高さを計算します。
  8. 元の画像の右下隅にウォーターマークテキストが来るように、テキストのX座標とY座標を計算します。
  9. draw.textメソッドを使用して、計算した位置に半透明の白色テキストとしてウォーターマークを画像に追加します。
  10. 最後に、ウォーターマークを追加した画像をRGBモードに変換し、convert("RGB")メソッドを使用してJPEG形式で保存します。この変換により、透明度情報は失われますが、JPEG形式での保存が可能になります。
  11. 関数の使用例を示します。この例では、original.jpgという名前の元の画像にウォーターマークを追加し、watermarked.jpgとして出力します。

この処理により、指定された画像にウォーターマークを追加し、新しいファイルとして保存することができます。

作成した全体のソースコード

作成した全体のソースコードは以下の通りです。

from PIL import Image, ImageDraw, ImageFont

def add_watermark(input_image_path, output_image_path, watermark_text):
    # 元の画像を開く
    original_image = Image.open(input_image_path)
    
    # ウォーターマークを追加するためにRGBAモードで画像を複製する
    watermark_image = original_image.convert("RGBA")
    
    # 画像のサイズに応じてウォーターマークの位置を決定
    width, height = original_image.size
    draw = ImageDraw.Draw(watermark_image)
    font = ImageFont.load_default()  # デフォルトフォントを使用
    # textbboxを使用してテキストの境界ボックスを取得
    text_bbox = draw.textbbox((0, 0), watermark_text, font=font)
    text_width = text_bbox[2] - text_bbox[0]
    text_height = text_bbox[3] - text_bbox[1]
    x = width - text_width - 10  # 右下に配置
    y = height - text_height - 10
    
    # ウォーターマークのテキストを画像に追加
    draw.text((x, y), watermark_text, fill=(255,255,255,128), font=font)  # 白色で半透明のテキスト
    
    # RGBモードに変換してから保存
    watermark_image_rgb = watermark_image.convert("RGB")
    watermark_image_rgb.save(output_image_path)

# 使用例
add_watermark('original.jpg', 'watermarked.jpg', '© Your Watermark')

実行結果

ウォーターマークが画像に正しく挿入できるかを確認します。

まず対象となる画像は以下となります。

この画像に対し、Pythonコードを実行してウォーターマークを挿入した結果が以下の画像です。

画像右下に正しくウォーターマークが挿入されたことを確認できました。

まとめ

この記事では、PythonのPILライブラリを利用して画像にウォーターマークを追加する方法をステップバイステップで解説しました。

ウォーターマークの追加は、画像の無断使用を防ぐだけでなく、作品のオリジナリティを示す重要な手段です。このプロセスを通じて、クリエイターや企業は自分のデジタルコンテンツをより効果的に保護し、その権利を主張することができます。

Pythonと少しのコーディング知識を使えば、誰でも簡単にこの保護手段を実装することが可能です。今後も、デジタルコンテンツの安全性を高め、クリエイティブな作品を守るために、このような技術を積極的に活用していきましょう。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

CAPTCHA


目次