ようこそ!浜村拓夫の世界へ

    ブログ内検索

    最近の記事

    ブックマーク数の多い記事

    Blog Translation

    Powered By FC2ブログ

    Powered By FC2ブログ
    ブログやるならFC2ブログ


    FC2ブログ LOGIN

    with Ajax Amazon

    スポンサーサイト

    このエントリーを含むはてなブックマーク はてなブックマーク - スポンサーサイト あとで読む
    上記の広告は1ヶ月以上更新のないブログに表示されています。
    新しい記事を書く事で広告が消せます。

    PHPで画像をモザイク加工する方法

    このエントリーを含むはてなブックマーク はてなブックマーク - PHPで画像をモザイク加工する方法 あとで読む
    PHPで画像ファイルをモザイク加工する方法を調べてみました。

    以前は、画像をいったん縮小して、もう一度拡大すればモザイクになる方法を採用していました。
    モザイク画像を作る方法 - [サンプルコード/PHP] ぺんたん info

    今は、PHP5の標準関数で、簡単にモザイク加工できます。

    PHP GDプログラミング - Geekなぺーじ
    PHP GDライブラリで画像加工をしてみる - キャスパーウェブデザイン

    以下のようなサンプルコードが紹介されていました。

    IMG_FILTER_PIXELATE: モザイク効果を画像に適用します。 arg1 でブロックの大きさを、 そして arg2 でモザイク効果のモードを指定します。 : 画像を滑らかにします。 滑らかさのレベルを arg1 で指定します。


    <?php
    $im = imagecreatefrompng('sample.png');

    if($im && imagefilter($im, IMG_FILTER_PIXELATE, 10)){
    echo '変換成功';
    imagepng($im, 'sample_IMG_FILTER_PIXELATE.png');
    imagedestroy($im);
    }else{
    echo '変換失敗.';
    }
    ?>
    <img src="sample_IMG_FILTER_PIXELATE.png" />


    例として、AmazonのASINが「B00PRFI50A」の画像を加工してみました。

    サクラナガシ 2015
    城南海
    ポニーキャニオン

    ¥ 3,000


    <?php
    $img_src = "./path/B00PRFI50A.jpg";
    $img_jpg = "./path/B00PRFI50A_effect.jpg";
    $img_png = "./path/B00PRFI50A_effect.png";

    $img = imagecreatefromjpeg($img_src);
    imagefilter($img, IMG_FILTER_PIXELATE, 5); // 5px

    imagejpeg($img, $img_jpg, 75); // save as jpeg
    imagepng($img, $img_png); // save as png

    imagedestroy($img);
    ?>


    ●PHP関数
    画像加工で活躍するPHPの関数
    GD および Image 関数 - PHPマニュアル

    imagefilter
    imagecreatefromjpeg
    imagejpeg
    imagepng
    などの関数を使うのがポイントです。

    元画像がJPEGなのに、加工後の画像をPNGにしたのは、PNGならモヤモヤしたノイズが生じないためです。
    JPEGのままだと、拡大するとノイズが生じているので、どちらが良いか?状況に応じて使い分けたら良いと思います。

    モスキートノイズ - Wikipedia

    モスキートノイズ (mosquito noise) は、デジタル画像圧縮画像(特にJPEG静止画およびMPEG動画)において輪郭部分や色の変化の激しい部分で起こる画像の乱れ(ノイズ)
    蚊(英:mosquito)の大群がまとわり付いている様に見えるため、この名前で呼ばれる。画像の空間周波数の高周波数成分が失われたために起こる現象である。



    元画像(JPEG) 160x160ピクセル
    B00PRFI50A

    モザイク加工(JPEG) 5ピクセルブロック
    B00PRFI50Aのモザイク加工(JPEG)

    モザイク加工(PNG) 5ピクセルブロック
    B00PRFI50Aのモザイク加工(PNG)

    PHP5で、GDライブラリが使用可能な環境であれば、PHPの標準関数で簡単に画像処理ができました。

    PHP逆引きレシピ 第2版 (PROGRAMMER’S RECiPE)
    鈴木 憲治 / 山田 直明 / 山本 義之 / 浅野 仁 / 櫻井 雄大 / 安藤 建一
    翔泳社
    2013-10-22
    ¥ 3,024


    関連記事

    コメント

    コメントの投稿


    管理者にだけ表示を許可する

    トラックバック

    トラックバックURL:
    http://hamamuratakuo.blog61.fc2.com/tb.php/1122-627ca5e8

    FC2Ad

    上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。