- ベストアンサー
Web画像コピー不可にする方法
私は、自前のHPに、イラストの画像を展示しています。プロですので、画像がコピーされるのは、できれば一部制限したいと思っています。 Web画像上で右クリックしても、見る人がコピーできないページをたまに見かけますが、そのようにする方法を知っている方教えていただけないでしょうか。右クリックすると、「Can not copy」なんてポップアップが出てくるのがイイです。 なお、私は、HTMLなど、ほとんど知らないWebページ制作初心者ですので、わかりやすく要点をまとめていただけると助かります。ちなみに、Dreamweaver使ってます。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
HTMLべた書きでよければ・・・・ 下記のスクリプトを<head>と</head>タグの間のどこでも良いので置いておくと右クリック時にメッセージを出します。 しかし、ブラウズ出来るって事はダウンロードして表示してるって事なので普通に置いていたらどうにでもしてダウンロードできます。 FLASHなど使えばスライドショウの様に表示できますし、個別の画像のダウンロードもできない(できにくい?)と思います。が、私はFRASH使ったことありません。スンマセン(汗) <!-- 右クリック禁止 --> <SCRIPT> function mdown(e) { if (navigator.appName == "Microsoft Internet Explorer") { if (event.button == 2) { alert("右クリックは使用できません"); return(false); } } else if (navigator.appName == "Netscape") { if (e.which == 3) { alert("右クリックは使用できません"); return(false); } } } if (document.all) { document.onmousedown = mdown; } if (document.layers) { window.onmousedown = mdown; window.captureEvents(Event.MOUSEDOWN); } </SCRIPT>
その他の回答 (3)
- kazu-kun
- ベストアンサー率31% (72/232)
キャッシュ制限の仕方ですが、Perlの知識が無いと難しいです。 以下のようなスクリプトで実現します。 #! /usr/local/bin/perl # ■Perlのパス # 自分のプロバイダのPerlのパスに変更する。 # ■このCGIから見た画像ファイルの位置に書き換えてください。 $JpegFileName="image/test.jpg"; print "Content-type: image/jpeg\n"; print "Pragma: no-cache\n"; print "Cache-Control: no-cache\n\n"; open(FILE,"$JpegFileName"); print <FILE>; close(FILE); なお、私もaricopさんのようなサイトの利用者の立場で考えると、kenkenkentさんと同様、コピー制限されていると印象が悪いです。 善意の利用者は、PC上に残しておいて後で見たいとか、壁紙にしたいとか、個人的な利用しかしないと思います。 生半可なコピー制限は、善意の利用者のコピーは防ぐけども、逆に、悪意ある利用者には何の効果もありません。(先に紹介した参考URLの方法も、あるソフトを使えば簡単に破られます。) いざ、改竄や無断使用された時のためには、 オリジナルの画像よりサイズや画質を落とすとか、画像上にクレジットを入れるとかのほうが有効だと思います。お札みたいに、見えない所に小さく字を入れるとか(^^;。 知りませんが、画像透かし用のソフトって高いかもしれませんので・・・。
お礼
お手数をおかけしました。私は、Perlの知識もないのですが、参考とさせていただきます。ありがとう。 ご意見につきましては、kenkenkentさんのものと同様、コメントすると議論になりかねないので、コメントは辞退し、参考程度に承らさせていただきます。画像透かし用のソフト、Photoshopは高いです。
- kenkenkent
- ベストアンサー率30% (565/1854)
画像のコピー禁止は、JAVAスクリプトなどでできますが、 私個人的には、あれは嫌いです(^^; と言うのも、例えば私がaricopさんのHPを訪問したとして、 『あ、aricopさんのイラスト、すごくキレイだな。あとで ジックリと見たいな』などと思った時に、ダウンロードが しづらいからです(笑) 実際には、JAVAスクリプトで制限をかけたところで、 画面全体ををキャプチャーしてしまうとか、キャッシュに 残っているデータから拾って来るなど、抜け道はあります。 結局のところ、無断転載しようとするヤツは、どんな手を 使ってでもやりますからねぇ。難しいところです。 あとは、画像自体に『透かし機能』を使ってしまうとか でしょうか。私はやった事が無いので判らないのですが、 確か、Photoshop5.5あたりから、できませんでしたっけ?
お礼
Photoshop6は持っているので、透かし機能は知っています。 これは、回答ではなく、感想・意見の主旨として承ります。よって、議論の場ではないと思いますので、コメントは辞退いたします。
- kazu-kun
- ベストアンサー率31% (72/232)
参考URLでいろいろな手段が説明されてます。 しかし、表示できたら、スクリーンキャプチャは出来てしまいます。 どういう理由で、制限しようとされているのかはしりませんが、 その理由によっては制限したって無意味なことです。
お礼
早速の回答ありがとうございます。Webに画像が表示されれば、スクリーンキャプチャできてしまうのはわかります。でも、多少の効果はあるのではと期待しています。画像を多くの人に見ていただきたいと思う面もあれば、かなりの努力の産物でもあるので安易にコピーされたくない気持ちもあるためです。例えば、駐輪禁止の看板の前で、駐輪する人がどれほどかみたいなものです。 お教えいただいた参考URL、「具体的には、バイナリ排出するようなCGIを作り、ピクチャファイルの中身を排出します。その際、 Pragma:no-cache Cache-Control:no-cache を、ヘッダ情報に加えてください。」 とありましたが、実は、私には難しいです。もしお時間があれば、もう少し補足していただけると理解が進むのですが。
お礼
ありがとうございます。こんなに早くお二人から、回答いただけたので嬉しいです。今までの徒労の時間は何だったんだろうといった感じです。このHTMLならば、私でも、貼り付けるだけで使えそうです。FLASHは、私も使えません。 「しかし、ブラウズ出来るって事は・・」は、分かりますが、理由はkazu-kunさんへの回答に書いた通りです。