モザイク画像を作る方法
モザイク画像を作るには、画像を縮小して拡大するだけでできます。
縮小することで画像が荒くなり、元のサイズに戻すことでモザイク画像となります。
この画像が
この画像になります。
コード
<?php /* ================================ * モザイク画像を作る * * @create 2010/09/05 * @author pentan * @url http://pentan.info/ * * Copyright (c) 2010 pentan.info All Rights Reserved. * 著作権表示部分の変更削除は禁止です * ================================ */ ////////// 初期設定ここから ////////// // モザイクの荒さ $mosaic = 5; // 画像のパス $path = 'test.jpg'; ////////// 初期設定ここまで ////////// // 画像ファイルの情報を得る list($img_width,$img_height,$type)=@getimagesize($path); // 画像ファイルに応じた関数を設定する switch( $type ){ case 1: $img_create_func ="imagecreate"; $img_resize_func ="imagecopyresampled"; $img_input_func ="imagecreatefromgif"; $img_output_func="imagegif"; $img_contenttype="image/gif"; break; case 2: $img_create_func ="imagecreatetruecolor"; $img_resize_func ="imagecopyresampled"; $img_input_func ="imagecreatefromjpeg"; $img_output_func="imagejpeg"; $img_contenttype="image/jpeg"; break; case 3: $img_create_func ="imagecreatetruecolor"; $img_resize_func ="imagecopyresampled"; $img_input_func ="imagecreatefrompng"; $img_output_func="imagepng"; $img_contenttype="image/png"; break; default: readfile($path); exit; break; } // 画像を読み込む if(!($src=@$img_input_func($path))){ header("Content-Type: " . $img_contenttype); readfile($path); exit; } // 画像をいったん縮小する $img_width_m = intval($img_width/$mosaic); $img_height_m = intval($img_height/$mosaic); $dst_m=$img_create_func($img_width_m,$img_height_m); $img_resize_func($dst_m,$src,0,0,0,0,$img_width_m,$img_height_m,$img_width,$img_height); // 画像を元のサイズに拡大する $dst=$img_create_func($img_width,$img_height); $img_resize_func($dst,$dst_m,0,0,0,0,$img_width,$img_height,$img_width_m,$img_height_m); // 画像を出力する header("Content-Type: " . $img_contenttype); $img_output_func($dst); imagedestroy($src); imagedestroy($dst); imagedestroy($dst_m);
関連記事
- PHPでwebサーバー(apache/nginx)の実行ユーザー・グループを確認する方法
- リクエストヘッダーやリクエストボディーなどを取得する方法
- 負荷が高いときには503エラーを返す方法
- サイトの更新情報をPINGサーバに送信する方法
- PHPでロードアベレージを表示させる方法
- PHPでTwitterのツイートをする/ツイート一覧を取得する/検索する(API v1.1)
- インクルードパスを設定する方法
- オブジェクト(Object)を配列(Array)に変換する方法
- PHPでgzip圧縮形式(gz圧縮)のファイルを読み書きする方法
- PHPでfacebook投稿時に公開範囲を指定する方法
- PHPで複数の画像をfacebookに投稿する方法
- PHPでfacebookのフィード(ウォール)に投稿する方法
- PHPでのfacebookアプリの認証処理(APIを使うユーザー認証)
- MySQL関数のまとめ
- MySQLサーバに接続できるかどうかを確認する
- ディレクトリ内のファイルのパーミッションを一括で変更する
- POSTでアップロードできるファイルサイズの制限を変更する方法
- 暗号化・複合化を行う ブロック暗号
- date型やdatetime型と年月日時分秒への変換
- 関数・メソッドの存在を調べる方法
- PHPでTwitterのbotを作る方法 ツイートをする/ツイート一覧を取得する(API v1)
- strtotimeの指定
- PHPでHTMLメールを送る方法
- ディレクトリセパレータを短く定義する DIRECTORY_SEPARATOR
- HTML内のアクセス解析タグを除去する方法
- HTMLのTABLEタグを簡単にCSVファイルに変換する方法
- 画像表示のときに指定サイズにリサイズする(画像の拡大縮小)
- テキストを可逆的な暗号化する Crypt_Blowfish
- PHPでwhois検索をする Net_Whois
- よく使うヘッダー関数のまとめ
- キャリア・世代を判別する
- mb_send_mailでCCやBCCを指定する 表示名を指定する
- より高速に、推測困難な一意なIDを生成する方法
- 画像ファイルを指定容量ぎりぎりに圧縮する
- 指定したHTTPヘッダーが送信済みあるいは送信予定に含まれているか
- DOCUMENT ROOTを得る $_SERVER["DOCUMENT_ROOT"]は使えない!
- マルチバイト文字列(日本語文字)を一文字づつ取り出す
- ファイルを削除する/フォルダを削除する
- ファイルを読み込む/ファイルに書き込む
- ディレクトリ内のファイル一覧を取得する
- quoted-printable文字列の変換
スポンサーリンク