Java Appletを利用する
大容量ギガサーバ+MySQLで本格ビジネス
Flashを使っても同様のことはできますが、Java Appletを使って画像を読み込み表示させる方法を取ることができます。
ex.
● 普通の画像の表示のさせ方: <img src="hogeheoge.jpg" width=320 height=213>
● Java Appletを利用した画像の表示のさせ方:
<applet code="applet.class" width=320 height=213>
<param name="imgName" value="hogehoge.jpg">
</applet>
のような感じにします。hogehoge.jpgというパラメータを受け取ったapplet.classは画像を表示させます。
次のようなメリット・デメリットが存在します。
メリット
1・右クリックでは画像を保存できません。そもそも右クリックしても何も表示されません。Operaでさえ、右クリックできません。
2.工夫をすれば、画像のファイル名や本当のパスは分かりにくくできます。
3.Internet ExplorerやFirefoxでは画像のキャッシュが残らないようです。
デメリット
1. 環境によって程度はさまざまでしょうが、Javaはとても重たいです。起動するのに時間がかかることが多いですから、画像が表示されるまでに10秒ぐらい待たされることもありえます。
2. 環境によっては、ブラウザごとクラッシュする可能性があります。安定性に少し欠けています。サイトのスタッフ側で再現できない場合、ユーザーからの問い合わせにも、的を得た回答を出すことができない場合も少なくないかもしれません。
3. 上記「2.」とも関連していますが、ブラウザによる挙動の違いだけでなく、Java VMのバージョンにも挙動が左右されるため、テストが大変です。動作しない場合、画像は表示されず、グレー一色の背景色だけ表示されます。
(参照)
アプレットが存在するはずの位置に赤色の X イメージが表示され、アプレットが実行されない --1.4.2_xx
http://www.java.com/ja/download/help/redximage.xml
また、このページを書き上げるために、さまざまなブラウザでテストしたところ、SunのJava VMではなく、Microsfot VMを利用しているInternet Explorerでは、最初このページのサンプル画像は表示されませんでした。コントロールパネル->Javaで、「Internet Explorerで標準で使われるJava VMはSunのもの」と指定してあげなければなりませんでした。
閲覧者であるユーザーにそのような強要ができるわけもなく、最終的には、Appletタグだけでなく、Objectタグを使うことで、Java VMとしてSunのjdk 1.3以上が使用されるように設定しました。
4. ブラウザのセキュリティ設定でJavaの実行を無効にしているユーザーには画像が全く表示されません。JavaScriptをoffにしている人より、Javaをoffにしているユーザーの方が多いと思われます。
5. パラメータを受け取って画像を表示するだけのアプレットは、Javaを勉強している人にとっては難しくありませんが、JavaScriptしか触ったことがないという方にはかなり敷居が高いはずです。株式会社プランセスで作成したアプレットで良ければ有償(3,000円〜)でご提供します。ご相談ください。
shtml2@princesse.com
その他、考慮すべき問題
1. Java Appletを含むClassファイルをdecompileする(元のソースを表示する)ソフトウェアも販売されていますので、完全に隠すことはできません。
2. PrintScreenキー対策は別途必要です。
SHTMLが提供するPrintScreenキー対策について
3. Appletに対するパラメータの渡し方によっては(ファイル名をそのまま渡すなど)、ソースを見れば、元の画像ファイルのパスが丸分かりになっていることも考えられます。対策としましては、画像をアプレットと同じディレクトリーには置かないようにして、「img」などの想像しにくいディレクトリー名を避けるようにすることも一つです。また、
SHTMLを使ってHTMLソースを暗号化することも、お勧めです。
目次: