Top > presen > PHP > gd

目次

  • 自己紹介
    • お仕事
    • 自己セールス (発表の権威付け的な意味合いで)
  • GD 概要
    • 入出力俯瞰図
    • 使い方
  • 応用サンプル
    • 画像形式変換
    • 描画
    • ピクセル単位の処理
  • バッドノウハウ(?)
  • ここからが本題
    • PHP5.5 の新機能

自己紹介

  • お仕事は画像システムのお守り。
  • システムは主に ImageMagick を使うけど、画質検証や資料作成で GD を使う事が多いので今回はそっちのネタで。
  • ちょっぴりだけ仕事の話。(画像システムのお守りはやる事沢山あるんです) (社内チェック間に合わないので諦める)

GD 概要

PHP GD 拡張って何?

  • http://php.net/manual/ja/book.image.php
    PHP は、多くの異なるイメージ形式でイメージファイルを作成したり、
    操作 したりすることもできます。このイメージ形式には、
    GIF, PNG, JPEG, WBMP および XPM が含まれます。
  • 5.x では殆ど変更ないので、普通に使う分にはバージョン問題に悩まされる事はない。(はず)
    • Windows 専用メソッド imagegrabwindow が 5.2.2 で増えてる位?

入出力俯瞰図

  • 画像ファイル、画像データと GD リソース(パレットとトゥルーカラー) 、操作、そして出力
    • 。。。辺りをまとめた図を作る。
  • パレット形式、ダイレクトカラー形式
  • PNG/JPEG/GIF の入出力
    • PHP の変数(string型)からでも読める(形式を自動判別してくれるので便利)
  • ピクセル単位の描画で画像を作成出来る。簡単な描画命令(line とか)もある。

使い方

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

(サンプル)

サンプル

簡単なサンプル

  • 画像ファイル形式変換 (PNG,GIF,JPEG相互変換)
  • 簡単なフィルタ (赤味をつけるとか)
  • 単色の画像を作成
  • ランダムな画像を作成

(各々サンプル)

応用サンプル

画像ファイル入出力

画像を一から作成

応用

限界というか弱点

  • 透明度の段階が荒い。透明度が 0~127 でしかも逆方向。
  • 16ビットカラーを扱えない。8bit のみ…
  • めっちゃ重たい

時間があったら

  • タイルとか fillStyle 的なの使える。但し、透明度と併用できない。
  • 弱点克服のご提案 (俺々ビットマップ処理 extension)
  • imagecopymerge でアバター画像合成は… 過去の記録が見つからない…

Reload   Diff   Front page List of pages Search Recent changes Backup Referer   Help   RSS of recent changes
Last-modified: Sat, 22 Jun 2013 18:22:16 JST (3951d)