• The added line is THIS COLOR.
  • The deleted line is THIS COLOR.
- [[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型)でも読める
- PNG/JPEG/GIF の入出力
-- PHP の変数(string型)からでも読める(形式を自動判別してくれるので便利)
- ピクセル単位の描画で画像を作成出来る。簡単な描画命令(line とか)もある。

** 使い方 [#u9533f44]

- 何より、gd は標準の extension なので導入が楽。
- 最小サンプル
- 最小サンプル (使い方が分かるように)
- Web で実行する場合は header と echo 。cli で画像ファイルを作るだけなら echo や file_put_contents で。

** 機能列挙 [#bc484086]

* 実例サンプル [#x680b7b5]
- 画像リソース作成
- 画像ファイル入出力
- 画像情報取得
- ピクセル操作
- 描画命令

* 画像の読み込み [#io]
* 実例サンプル [#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
- colorcount.php
--  http://d.hatena.ne.jp/yoya/20120421/php

* 画像を一から作成 [#create]
** 画像を一から作成 [#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 でアバター画像合成は… 過去の記録が見つからない…


Reload   Diff   Front page List of pages Search Recent changes Backup Referer   Help   RSS of recent changes