\BEAR_Img_Adapter_Cairo

Cairoクラス

PECLのCairo Wrapperをサポートするクラスです

Example 1. 画像のリサイズ表示

$img = BEAR_Img::getInstance(BEAR_Img::Magick); $img->load(LOCAL_IMG_FILE); //$img->load(REOMOTE_IMG_FILE); //http://ではじまるリモートファイルも可 $img->resize(30); $img->show

Example 2. 画像とテキストを合成してiMagickを使用してJPEG表示

$img = BEAR_Img::getInstance(BEAR_Img::ADAPTER_MAGICK); $file = _BEAR_APP_HOME . '/htdocs/eye.png'; $img->load($file); $img = BEAR_Img::changeInstance(BEAR_Img::ADAPTER_CAIRO); $img->addImage('http://www.christmastail.com/picbbs/icon/016.png', 50, 50); $img->addText('フェリクス星雲NGC7293, 通称「神の目」', 0, 80, 24, BEAR_Img::CENTER, array(200, 200, 200), array(100,128,128), 'Hiragino Mincho ProN'); $img->resize();

Summary

Methods
Properties
Constants
__construct()
onInject()
deleteFile()
getTmpFileName()
resizeMobile()
loadRemoteFile()
getExtention()
setConfig()
getConfig()
setService()
load()
addImage()
addText()
show()
save()
$image
$deleteFiles
$adapter
$surface
No constants found
getImageInfo()
header()
_error()
_exception()
$file
$_srcWidth
$_srcHeight
$_srcAttr
$_result
$_log
$_config
N/A
_thisError()
$_srcType
$_fontInfo
N/A

Properties

$image

$image : resource

イメージリソース

Type

resource

$deleteFiles

$deleteFiles : array

デストラクタで消去するファイルリスト

Type

array

$adapter

$adapter : \GD

画像ライブラリオブジェクト

Type

\GD — | iMagick | Cariro

$surface

$surface : resource

Cairoサーフェイス

Type

resource

$file

$file : string

Type

string

$_srcWidth

$_srcWidth : integer

元画像の幅

Type

integer

$_srcHeight

$_srcHeight : integer

元画像の高さ

Type

integer

$_srcAttr

$_srcAttr : string

元画像の属性

Type

string

$_result

$_result : boolean

出力結果

Type

boolean

$_config

$_config : array

Class config

Type

array

$_srcType

$_srcType : string

画像のタイプ

IMAGETYPE_GIF | IMAGETYPE_JPEG | IMAGETYPE_PNG

Type

string

$_fontInfo

$_fontInfo : array

フォント情報

Type

array

Methods

__construct()

__construct(array  $config) 

Constructor

設定を_configプロパティに代入します。

Parameters

array $config

ユーザー設定値

onInject()

onInject() : void

Inject

設定にしたがってサービスをインジェクトします。

deleteFile()

deleteFile(string  $file) : void

ファイルの消去

作業用のファイルを消去リストに追加します。

Parameters

string $file

ファイル

getTmpFileName()

getTmpFileName(mixed  $file = false, mixed  $delete = true) : string

一時ファイル名を取得

一時画像ファイル名を生成します。 $deleteオプションがtrueの場合、デストラクタでテンポラリーファイルは消去されます

Parameters

mixed $file

ファイル名

mixed $delete

消去

Returns

string

resizeMobile()

resizeMobile() : void

モバイル端末に合わせた画像の最大リサイズ

loadRemoteFile()

loadRemoteFile(string  $file) : string

ファイルの読み込み

ローカル・リモートファイルにかかわらずファイルを読み込みます。
リモートファイルの場合はローカルにテンポラリーファイルが
作成されその名前が返されます。作られたテンポラリーファイルは
デストラクタで消去されます。キャッシュはされません。

Parameters

string $file

ファイル名

Returns

string

getExtention()

getExtention(string  $imageType) : string

image typeから拡張子を求める

Parameters

string $imageType

Returns

string

setConfig()

setConfig(mixed  $config, mixed  $values = null) : self

Set config

Parameters

mixed $config

(string) 設定キー | (array) 設定配列

mixed $values

(string) $configの時の設定値

Returns

self

getConfig()

getConfig(string  $key = null) : mixed

Get config

Parameters

string $key

設定キー、指定なければ全ての設定を取得

Returns

mixed

setService()

setService(string  $name, mixed  $service) : void

Set service

Parameters

string $name

サービスキー

mixed $service

サービス

load()

load(string  $file) : void

ファイルのロード

$fileにはローカルファイルのパスまたはリモートファイルのURLを指定します。
リモートファイルの読み込みにはphp.iniでallow_url_fopen =Onの設定が必要です。

Parameters

string $file

ファイル名

addImage()

addImage(string  $file, integer  $x, integer  $y, float  $alpha = 1.0) : void

画像を合成

画像ファイル(PNG)を合成します。

Parameters

string $file

ファイル名

integer $x

X座標

integer $y

Y座標

float $alpha

アルファブレンディング(0..1)

addText()

addText(string  $text, integer  $x, integer  $y, integer  $size = 120, string  $align = \BEAR_Img::LEFT, mixed  $colorOne = false, mixed  $colorTwo = false, string  $font = 'Arial', float  $textAlpha = 0.85, float  $lineWidth = 0.75, integer  $slant = CAIRO_FONT_SLANT_NORMAL, integer  $weight = CAIRO_FONT_WEIGHT_NORMAL) 

テキストを合成

指定位置にテキストを追加します。$alignに右寄せ(_BEAR_ALIGN_RIGHT)を指定
すると$xは右からのスペースになります。fontはターミナルでfc-listで得られるフ
ォントの名前を使用します。イタリックは$slantにCAIRO_FONT_SLANT_ITALIC,
 ボールドは$weightにCAIRO_FONT_WEIGHT_BOLDを指定します。

Parameters

string $text

テキスト

integer $x

X座標

integer $y

Y座標

integer $size

フォントサイズ

string $align

BEAR_Img::LEFT | BEAR_Img::CENTER | BEAR_Img::RIGHT

mixed $colorOne

内側カラー array($r, $g, $b)

mixed $colorTwo

アウトラインカラー array($r, $g, $b)

string $font

フォント

float $textAlpha

アルファブレンディング(0..1)

float $lineWidth

ラインの幅

integer $slant

CAIRO_FONT_SLANT_NORMAL | CAIRO_FONT_SLANT_ITALIC

integer $weight

CAIRO_FONT_WEIGHT_NORMAL | CAIRO_FONT_WEIGHT_BOLD

show()

show() : void

画像表示

image/pngヘッダーを出力してPNG画像を出力します。
cairoはpngしか出力できません。

save()

save(string  $filePath, string  $format = 'png') : void

画像保存

CairoのPNG画像を保存します。

Parameters

string $filePath

保存画像のファイルパス

string $format

画像ファイルのフォーマット

getImageInfo()

getImageInfo() : void

画像情報の取得

getimagesizeで得られる画像情報を以下のプロパティに格納します。

_srcWidth int
srcHeight int
srcType   int
srcAttr   string

header()

header(mixed  $format = false, integer  $expire) : void

ヘッダー出力

Parameters

mixed $format

フォーマット

integer $expire

expire

_error()

_error(string  $errorFunc) : void

エラー終了

Parameters

string $errorFunc

ファンクション名

_exception()

_exception(string  $msg, array  $config = array()) : \BEAR_Exception

例外の作成

Parameters

string $msg

例外メッセージ

array $config

例外config

Returns

\BEAR_Exception

_thisError()

_thisError(string  $errorFunc, mixed  $msg = false) 

エラー終了

エラー終了します。
運用でクローラーにキャッシュされないために503ヘッダーを出力しています

Parameters

string $errorFunc

コール元のメソッド名

mixed $msg

エラーメッセージ

Throws

\BEAR_Exception