[PHP-users 32083] Re: 携帯用画像ファイルの再配布不可識別子

takeyoshi @ glovalex.com takeyoshi @ glovalex.com
2007年 5月 9日 (水) 14:08:11 JST


利根川様
PHP-usersのみなさま


ご無沙汰しております。
竹吉です。

せっかくご教授頂いたのに、導入後のご報告が遅れてしまい申し訳ございません。
遅ればせながらImageMagickの導入
およびMagickWandによるコメント追加処理の開発・検証が完了いたしました。

MagickWand導入に関して多少苦戦しました。
既存環境でPHPの展開ソースディレクトリが残ったままbuildconf --forceをしても上手くいかず。。。
いったん既存のソースディレクトリを退避させbuildconf --forceいたしました。

コメント追加ロジックは以下のような感じです。

    // 転送禁止
    $file_path = "画像ファイルパス";

    //-- ファイルオープン
    $fp = fopen($file_path,'rb');
    $data = fread($fp,filesize($file_path));
    fclose($fp);

    //-- MagickWandによる画像読込み
    $magick = NewMagickWand();
    MagickReadImageBlob($magick,$data);
    
    //-- アクセス端末のキャリアで追加コメント制御
    if(EZだったら){
      MagickCommentImage($magick,"kddi_copyright=on");    
    }elseif(ドコモだったら){
      MagickCommentImage($magick, "copy=\"NO\"");
    }elseif(ソフトバンクだったら){
      // no comment
    }

    //-- MagickSetFormat()引数用
    $finfo =getimagesize($file_path);
    switch($finfo[2]){
      case "1":
        $type = "gif";
        break;
      case "2":
        $type= "jpg";
        break;
      case "3":
        $type= "png";
        break;
      default:
        
    }
    MagickSetFormat($magick,$type);
    $data = MagickGetImagesBlob($magick);

    //-- 画像ファイル上書き(rewind()の方がいいか・・・)
    $fp = fopen($file_path,'w+');
    fwrite($fp, $data);
    fclose($fp);


検証の結果、転送不可となった画像ファイルが生成されました。

本当に助かりました。
大変遅くなりましたが、ご教授ありがとうございました。



On Thu, 26 Apr 2007 13:38:23 +0900
"S.Tonegawa" <stone @ 328w.co.jp> wrote:

> 竹吉さん、PHP-usersのみなさま
> 
> こんにちわ、利根川と申します。
> 
> On 2007/04/26, at 12:15, takeyoshi @ glovalex.com wrote:
> 
> > 早速のご教授、ありがとうございます。
> > 即、ステージングに導入し検証いたします。
> >
> >> MagickWandを使えば、MagickCommentImage()で
> >> JPEG/GIF/PNGに再配布禁止のコメントを入れる事が可能です。
> > これだけなんですね・・・。
> > 早速導入後、使用して結果報告致します。
> 
> そうですか、お役に立てそうで、なによりです。
> 
> たぶん、こんな流れで実現できるはずです。
> ----
> $magick = NewMagickWand();
> 
> // ▼画像データを設定
> // $image_dataは、画像ののバイナリデータ
> MagickReadImageBlob($magick, $image_data);
> 
> // ▼コメントを設定
> if ($carrier == 'i') {
>      // i-mode
>      MagickCommentImage($magick, "copy=\"NO\"");
> } else if ($carrier == 'e') {
>      // ez
>      MagickCommentImage($magick, "kddi_copyright=on");
> }
> 
> // ▼画像データを取り出す
> $image_data = MagickGetImagesBlob($magick);
> ----
> 
> > 携帯コンテンツ開発は初めてなのですが奥が深いですね・・。
> > 各キャリア・機種への対応が際限なく様々なシーンで押し寄せてくる 
> > 感覚です。
> 
> 確かに。
> 私も、日々、キャリア依存/機種依存に悩まされています。
> 
> とりあえず、画像の再配布禁止、うまくいくといいですね。
> 
> ----
> S.Tonegawa
> mitsubachiworks inc.
> 
> 
> 
> _______________________________________________
> PHP-users mailing list  PHP-users @ php.gr.jp
> http://ml.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://www.php.gr.jp/php/novice.php3





PHP-users メーリングリストの案内