unoh.github.com

携帯キャリアで画像を転送させない方法

2007-09-25 09:00:57 +0000

Keitaです。

携帯画像で待ち受け画像などで、ダウンロードはできるけどメールに添付できないタイプの画像があるとおもいます。
ここらへんどうやるか、気になって調べてみると、

Docomoと、AUは画像のコメント部分に、それぞれ、特定の文字列を入れれればいいようで、 Docomoの場合「copy="NO"」KDDIの場合「kddi_copyright=on」を追加することでで、携帯でダウンロードできるが、メールなどで転送できない画像が作れました。

具体的に、MagickWand For PHPを使う場合には以下のような感じでヘッダを埋め込みます。
<?php
    $image =  NewMagickWand();
    MagickReadImage($image, 'Keita_s.jpg');
    MagickCommentImage($image, 'kddi_copyright=on,copy="NO"');
    MagickWriteImage($image, 'Keita_s_Copy.jpg');

SoftBankに関しては、次のようなヘッダを出力追加してやれば再配布を禁止することができるようです。
「x-jphone-copyright: no-transfer」
技術資料 HTTP編のPDFの「3.15.38」の項目に、詳細が乗っています。


動的に出力したい場合には、こんな感じのコードを書いてやるとよさそうです。
<?php
    $image =  NewMagickWand();
    MagickReadImage($image, 'Keita_s.jpg');
    MagickCommentImage($image, 'kddi_copyright=on,copy="NO"');
    header("Content-type: " . MagickGetImageMimeType($image));
    header('x-jphone-copyright: no-transfer');
    MagickEchoImageBlob($image);
なお、3キャリアを1機種ずつ確認し問題のないことを確認しましたが、責任を取れるほど詳しくは検証していませんので、厳密にやりたい場合は、必ず検証ののちご利用ください。

あと当然ですが、上記の3キャリア以外からアクセスできると、画像は取り放題ですのでご注意ください。

参考にさせていただいたサイト

以上、ご参考になれば幸いです。