オリジナルの画像やアートワークを保護することは、クリエイターや企業にとって非常に重要です。
画像の無断使用やコピーを防ぐための一つの効果的な方法は、ウォーターマークの追加です。ウォーターマークは、著作権情報や所有者の識別情報を含むことができ、画像の権利を保護する同時に、その流通を監視する手段を提供します。
この記事では、PythonとPILライブラリを使用して、画像にウォーターマークを追加する方法について、簡単かつ効果的な手順をご紹介します。
ライブラリのインストール
ウォーターマークの挿入に必要なライブラリPillowをインストールします。
コマンドラインで以下のコマンドを実行してください。
pip install Pillow
作成したPythonコード
このコードは、PythonのPILライブラリを使用して、指定された画像にウォーターマークを追加する処理を行います。
まず、入力された画像をRGBAモードに変換し、透明度を扱えるようにします。次に、デフォルトのフォントを使用してウォーターマークのテキストのサイズを計算し、画像の右下隅に位置を決定します。ウォーターマークのテキストは半透明の白色で描画されます。
最後に、画像をRGBモードに変換してJPEG形式で保存します。この手順により、元の画像に透明度を持つテキストウォーターマークを追加し、新しい画像ファイルとして出力します。
コード解説
- 必要なライブラリ(PIL)から
Image
、ImageDraw
、ImageFont
をインポートします。 add_watermark
関数を定義します。この関数は、入力画像のパス(input_image_path
)、出力画像のパス(output_image_path
)、ウォーターマークとして追加するテキスト(watermark_text
)を引数に取ります。- 入力画像を開き、
Image.open
メソッドを使用してoriginal_image
オブジェクトを作成します。 - 元の画像を
convert
メソッドを使ってRGBAモードに変換し、watermark_image
オブジェクトを作成します。これにより、透明度情報を含む画像にウォーターマークを追加できます。 ImageDraw.Draw
メソッドを使用して、watermark_image
に描画機能を追加します。- デフォルトフォントを使用するために
ImageFont.load_default()
を呼び出します。 draw.textbbox
メソッドを使用してウォーターマークテキストの境界ボックスを取得し、テキストの幅と高さを計算します。- 元の画像の右下隅にウォーターマークテキストが来るように、テキストのX座標とY座標を計算します。
draw.text
メソッドを使用して、計算した位置に半透明の白色テキストとしてウォーターマークを画像に追加します。- 最後に、ウォーターマークを追加した画像をRGBモードに変換し、
convert("RGB")
メソッドを使用してJPEG形式で保存します。この変換により、透明度情報は失われますが、JPEG形式での保存が可能になります。 - 関数の使用例を示します。この例では、
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と少しのコーディング知識を使えば、誰でも簡単にこの保護手段を実装することが可能です。今後も、デジタルコンテンツの安全性を高め、クリエイティブな作品を守るために、このような技術を積極的に活用していきましょう。
コメント