スクリーンショット対策!画像の上にテキストを重ねる方法

※当サイトにはプロモーションが含まれています。

クライアントクライアント

スクリーンショットで画像をコピーされないようにする方法を教えてくれ!

にゃテックにゃテック

それは難しいにゃ。

残念ながら、スクリーンショット(スクリーンキャプチャ)そのものを完全に防ぐことは難しいです。

そのため、画像を保護する確実な対策としては、下記のように画像自体にウォーターマーク(or コピーライト)を付けるのが一番かと思います。

アニメーションの開始となる画像

ただ、画像を作成するたびにウォーターマークやコピーライトを埋め込む作業は、手間に感じる場合もあると思います。

そこで今回は、CSSやJavaScriptを使って、画像の上にテキスト(© hoge.com など)を重ねて表示する方法を解説します。

ウォーターマークとコピーライトの違い

ウォーターマークは、画像の上に透かしとして表示する目印のことを指します。
一方、コピーライトは、作品の著作権者を示す権利表示(©マークなど)を意味します。
この2つは目的や表示方法に違いはありますが、作品の無断利用を抑止し、制作者・権利者を明示するという点では共通しています。

画像の上にテキストを重ねて表示する方法

ここでは、ワードプレス(WordPress)でブロックエディタ(Gutenberg)を使用している場合の方法を解説します。

そのため、クラシックエディターを使用している場合は適用されないのでご注意ください。

想定される画像HTMLの構造

ワードプレスでブロックエディタを使用している場合、画像ブロックは、一般的に次のようなHTML構造で出力されます。

<figure class="wp-block-image">
<img src="..." alt="...">
</figure>

この<figure>タグに対して、ブロック設定の「追加CSSクラス」に、wmのようなクラス名を付与します。

にゃのらいとにゃのらいと

wmは、watermarkの略だにゃ。

つまり、下記のようなHTML構造(画像ブロック)にします。

<figure class="wp-block-image wm">
<img src="..." alt="...">
</figure>

ブロックエディタでクラスを付与する方法について

上記の様にブロックタブにある、高度な設定 > 追加CSS にクラスwmを記載します。

ブロックエディタ|高度な設定 > 追加CSSクラス

この追加付与したクラスwmに対して、CSSを定義します。

ウォーターマークを付与するCSSについて

下記が、ウォーターマークを付与するCSSになります。

これを「追加CSS」に記載します(※追加CSSへの記載方法はページ下方にあります)

figure.wp-block-image.wm{
position: relative !important;
width: fit-content;
max-width: 100%;
margin-left: auto;
margin-right: auto;
isolation: isolate;
font-size: initial !important;
line-height: normal !important;
}

figure.wp-block-image.wm > img{
position: relative !important;
z-index: 0 !important;
display: block;
max-width: 100%;
height: auto;
}

figure.wp-block-image.wm::after{
content: "© hoge.com" !important; /* コピーライト */
position: absolute !important;
right: 8px !important; /* 表示位置 */
bottom: 8px !important; /* 表示位置 */
z-index: 10 !important;
visibility: visible !important;
height: auto !important;
display: inline-block !important;
font-size: 12px !important;
line-height: 1 !important;
padding: 4px 6px !important;
color: #000 !important; /* テキスト色 */
background: rgba(255,255,255,0.75) !important; /* 背景色 */
pointer-events: none !important;
}

この内容を記載すると、次のように反映されます。

ウォーターマーク反映例

width: fit-contentmargin: autoを指定することで、画像の幅に合わせた状態で中央寄せを実現しています。

また、content: “© hoge.com” !important;の部分では、表示するコピーライト(ウォーターマーク)の内容を指定しています。

たとえば、「無断コピー転載・禁止」といった文言を表示したい場合は、次のように記述します。

content: "無断コピー転載・禁止" !important;

なお、ウォーターマークの表示位置は、

right: 8px !important;
bottom: 8px !important;

の指定によって調整しています。

数値を変更することで、画像の右下からの距離を細かく調整することができます。

なお、HTMLを<figure class=”wp-block-image wm”>の構造にすれば、テキスト(HTML)編集をすることで、クラシックエディターでも同様に反映させることが可能です。

クラシックエディタ|テキストに記載

下記は、実際に賢威のクラシックエディターで記述した内容が反映された例です。

Ny@Tech(にゃテック)

この方法により、画像をコピーする目的で行われるスクリーンショットに対して、一定の抑止効果が期待できます。

ただし、この方法だけでは、画像をドラッグ&ドロップしたり、右クリックから保存できてしまいます。

にゃテックにゃテック

そのため、ドラッグ操作を制限するCSSなどの対策を併用することが望ましいと思います。

これらの対策について詳しく紹介しているのが、次の記事です。

補足:ワードプレスの「追加CSS」の編集箇所について

現在のワードプレステーマにCSSを追加したい場合、左メニューにある、

外観 > カスタマイズ

を選択します。

外観 > カスタマイズ
追加CSS」を選択します。
追加CSS

追加したいCSSを記述します(コピペして貼り付けます)。

公開」ボタンを押して保存すれば完了です。

なお、追加CSSに記載する際に、ブラウザ上で全角から半角に変換すると、エンコーディング(文字コード)の関係で、不具合が発生することがあります。

その為、編集する時は、メモ帳などに貼り付けたものを編集をしてからペーストするようにしましょう。

追加CSSを公開

なお、ブラウザにキャッシュが残っていると、前のデザイン(CSS)が表示されたり、デザインが崩れて表示される事があります。

その際は、強制リロード(ハードリフレッシュ)をしてみてください。

各ブラウザごとの、強制リロードの方法は次の通りです。

Windows Mac
Google Chrome 【Ctrl+F5】
【Ctrl+Shif+R】
【Command+Shift+R】
Microsoft Edge 【Ctrl+F5】
【Ctrl+Shif+R】
【Command+Shift+R】
Mozilla Firefox 【Ctrl+F5】
【Ctrl+Shif+R】
【Command+Shift+R】
Safari(Mac) 【Command+Option+R】

強制リロードをすることで、ブラウザがキャッシュを無視し、最新のコンテンツを再読み込みします。