- [[2013年6月24日>2013-06-24]]のPHP勉強会( http://atnd.org/events/40476 )資料下書き * 目次 [#contents] - 自己紹介 -- お仕事 -- 自己セールス (発表の権威付け的な意味合いで) - GD 概要 -- 入出力俯瞰図 -- 機能列挙 - 実例サンプル -- 画像形式変換 -- 描画 -- ピクセル単位の処理 - バッドノウハウ(?) - ここからが本題 -- PHP5.5 の新機能 * 自己紹介 [#n955c440] - お仕事は画像システムのお守り。 - システムは主に ImageMagick を使うけど、画質検証や資料作成で GD を使う事が多いので今回はそっちのネタで。 - %%ちょっぴりだけ仕事の話。(画像システムのお守りはやる事沢山あるんです) (社内チェック間に合わないので諦める)%% * GD 概要 [#s20a1f3e] ** PHP GD 拡張って何? [#what] - http://php.net/manual/ja/book.image.php PHP は、多くの異なるイメージ形式でイメージファイルを作成したり、 操作 したりすることもできます。このイメージ形式には、 GIF, PNG, JPEG, WBMP および XPM が含まれます。 ** 入出力フロー [#id4c9711] - 画像ファイル、画像データと GD リソース(パレットとトゥルーカラー) 、操作、そして出力 -- 。。。辺りをまとめた図を作る。 - パレット形式、ダイレクトカラー形式 - PNG/JPEG/GIF の入出力 -- PHP の変数(string型)からでも読める(形式を自動判別してくれるので便利) - ピクセル単位の描画で画像を作成出来る。簡単な描画命令(line とか)もある。 ** 使い方 [#u9533f44] - 何より、gd は標準の extension なので導入が楽。 - 最小サンプル (使い方が分かるように) - Web で実行する場合は header と echo 。cli で画像ファイルを作るだけなら echo や file_put_contents で。 ** 機能列挙 [#bc484086] - 画像リソース作成 - 画像ファイル入出力 - 画像情報取得 - ピクセル操作 - 描画命令 * 実例サンプル [#sample] ** 簡単なサンプル [#simple] - 画像ファイル形式変換 (PNG,GIF,JPEG相互変換) - 単色の画像を作成 - ランダムな画像を作成 ** 画像ファイル入出力 [#imageio] - colorcount.php -- http://d.hatena.ne.jp/yoya/20120421/php - PHP で画像比較 -- http://d.hatena.ne.jp/yoya/20111013/php - PHP で画像比較(2) 差分抽出 -- http://d.hatena.ne.jp/yoya/20120712/php ** 画像を一から作成 [#create] - ビットマップ画像フォーマット毎のテスト素材 -- http://d.hatena.ne.jp/yoya/20110622/gd - 画像ファイルのサイズ範囲 -- http://d.hatena.ne.jp/yoya/20120704/imagesize - 色の分布を3Dで表示するJavaScriptを改造 -- http://d.hatena.ne.jp/yoya/20120827/three * 応用 [#application] - Dot 絵化 (アンチエイリアシング無しの拡大+α) -- http://awm.jp/~yoya/php/image/dottize.php - PHP で 3D plot -- http://d.hatena.ne.jp/yoya/20080925/1222575576 * 限界というか弱点 [#limit] -- 透明度の段階が荒い。透明度が 0~127 でしかも逆方向。 -- 16ビットカラーを扱えない。8bit のみ… -- めっちゃ重たい * 時間があったら [#r88e2119] - タイルとか fillStyle 的なの使える。但し、透明度と併用できない。 - 弱点克服のご提案 (俺々ビットマップ処理 extension) - imagecopymerge でアバター画像合成は… 過去の記録が見つからない… |