a-blog cms PHP API Reference

GdEngine extends ImageEngine
in package

Table of Contents

Methods

__construct()  : mixed
Image Helper constructor.
computeEditMetrics()  : array<string|int, mixed>
画像編集をするための数値を計算
copyImage()  : void
画像を複製
copyImageAsWebp()  : void
WebP画像として画像を複製
detectImageExtenstion()  : string
MIMEタイプから画像拡張子を検出する
editImage()  : void
画像を編集(リサイズ・回転)して書き出す
getImageQuality()  : int
画質を取得
getImageSize()  : array{0: int, 1: int, 2: int, 3: string, bits: int, channels: int, mime: string}|false
画像パスから画像サイズを取得
getMimeType()  : string|null
画像パスからMIMETypeを取得
getOrientedSize()  : array{0: int, 1: int}
EXIF Orientation を適用した状態の画像サイズを取得する
getSize()  : array{0: int, 1: int}
画像サイズを取得
isSupportedImageFormat()  : bool
指定のMIMEタイプの画像形式がこのエンジンで実際に処理可能か判定する
isWebpSupported()  : bool
GDでWebP画像がサポートされているか判定
optimize()  : void
ロスレス圧縮を実行
resizeImage()  : void
画像をリサイズ
setImageQuality()  : void
画質をセット
setOptimizer()  : void
画像オプティマイザーを設定
shouldReadFromLocalStorage()  : bool
指定のパスを LocalStorage(ローカルファイルシステム)から直接読むべきか判定する
supportsExifOrientation()  : bool
GD は exif_read_data(ext-exif)が無いと EXIF Orientation を解釈できない
applyExifOrientation()  : GdImage
EXIF Orientation(1〜8)に従って GD 画像のピクセルを回転/反転する。
loadGdImageFromPath()  : GdImage
画像パスからGDImage or resourceを生成
mimeTypeToExtension()  : string|T
画像パスから画像拡張子を取得
outputImage()  : void
画像ファイルを書き出し
readExifOrientation()  : int
画像パスから EXIF Orientation(1〜8)を取得する。
doResize()  : void
リサイズ・回転して書き出す実処理
rotateGdImage()  : GdImage
imagerotate で回転し、成功時は元リソースを破棄して新リソースを返す。

Methods

__construct()

Image Helper constructor.

public __construct() : mixed

computeEditMetrics()

画像編集をするための数値を計算

public computeEditMetrics(int $srcWidth, int $srcHeight[, int|null $width = null ][, int|null $height = null ][, int|null $size = null ]) : array<string|int, mixed>
Parameters
$srcWidth : int
$srcHeight : int
$width : int|null = null
$height : int|null = null
$size : int|null = null
Return values
array<string|int, mixed>

{ width: int, height: int, x: int, y: int, columns: int, rows: int }

copyImage()

画像を複製

public copyImage(string $srcPath, string $destPath[, string|null $format = null ]) : void
Parameters
$srcPath : string
$destPath : string
$format : string|null = null

copyImageAsWebp()

WebP画像として画像を複製

public copyImageAsWebp(string $srcPath, string $destPath) : void
Parameters
$srcPath : string
$destPath : string

detectImageExtenstion()

MIMEタイプから画像拡張子を検出する

public detectImageExtenstion(string $mimeType) : string
Parameters
$mimeType : string
Return values
string

editImage()

画像を編集(リサイズ・回転)して書き出す

public editImage(string $srcPath, string $destPath[, int|null $width = null ][, int|null $height = null ][, int|null $size = null ][, int|null $angle = null ]) : void
Parameters
$srcPath : string
$destPath : string
$width : int|null = null
$height : int|null = null
$size : int|null = null
$angle : int|null = null

getImageQuality()

画質を取得

public getImageQuality() : int
Return values
int

getImageSize()

画像パスから画像サイズを取得

public getImageSize(string $path) : array{0: int, 1: int, 2: int, 3: string, bits: int, channels: int, mime: string}|false
Parameters
$path : string
Return values
array{0: int, 1: int, 2: int, 3: string, bits: int, channels: int, mime: string}|false

getMimeType()

画像パスからMIMETypeを取得

public getMimeType(string $path) : string|null
Parameters
$path : string
Return values
string|null

getOrientedSize()

EXIF Orientation を適用した状態の画像サイズを取得する

public getOrientedSize(string $path) : array{0: int, 1: int}
Parameters
$path : string
Return values
array{0: int, 1: int}

getSize()

画像サイズを取得

public getSize(string $path) : array{0: int, 1: int}
Parameters
$path : string
Return values
array{0: int, 1: int}

isSupportedImageFormat()

指定のMIMEタイプの画像形式がこのエンジンで実際に処理可能か判定する

public isSupportedImageFormat(string $mimeType) : bool

gif/png/jpeg/bmp/xbm など mimeTypeMap に登録済みの形式は true を返す。 WebP のように環境(GD/Imagick・設定)によって対応有無が変わる形式のみ 個別に判定する。mimeTypeMap に無い形式(AVIF・HEIC等、現時点で未対応の 画像形式)は false を返す。将来対応する際は、対象形式を mimeTypeMap に 追加するか、この match 式に判定を追加すればよい(呼び出し側の変更は不要)。

「そもそも画像として扱うファイルかどうか」(SVGや非画像ファイルの除外)は このメソッドの責務ではなく、呼び出し側(Media::isImageFile() 等)が判定する。

Parameters
$mimeType : string
Return values
bool

isWebpSupported()

GDでWebP画像がサポートされているか判定

public isWebpSupported() : bool
Return values
bool

optimize()

ロスレス圧縮を実行

public optimize(string $path) : void
Parameters
$path : string

resizeImage()

画像をリサイズ

public resizeImage(string $srcPath, string $destPath, int $srcWidth, int $srcHeight, int $srcX, int $srcY, int $destWidth, int $destHeight, int $destX, int $destY, int $canvasWidth, int $canvasHeight, array{0: int, 1: int, 2: int} $color[, int|null $angle = null ]) : void

ImageResize など、getOrientedSize() で取得した向き補正後の寸法を基準に src/dest/canvas を計算した外部コードから直接呼ばれる公開APIである。 呼び出し元の寸法計算と整合させるため、内部で EXIF Orientation を適用する。

Parameters
$srcPath : string
$destPath : string
$srcWidth : int
$srcHeight : int
$srcX : int
$srcY : int
$destWidth : int
$destHeight : int
$destX : int
$destY : int
$canvasWidth : int
$canvasHeight : int
$color : array{0: int, 1: int, 2: int}
$angle : int|null = null

setImageQuality()

画質をセット

public setImageQuality(int $quality) : void
Parameters
$quality : int

shouldReadFromLocalStorage()

指定のパスを LocalStorage(ローカルファイルシステム)から直接読むべきか判定する

public shouldReadFromLocalStorage(string $path) : bool

PHPのアップロード一時ファイルや php:// ストリームなど、まだ PublicStorage (ローカル/クラウドの永続化ストレージ抽象化レイヤー)の管理下にないパスは true を返す。false の場合は PublicStorage 経由でアクセスする。

Parameters
$path : string
Return values
bool

supportsExifOrientation()

GD は exif_read_data(ext-exif)が無いと EXIF Orientation を解釈できない

public supportsExifOrientation() : bool
Return values
bool

applyExifOrientation()

EXIF Orientation(1〜8)に従って GD 画像のピクセルを回転/反転する。

protected applyExifOrientation(GdImage $image, int $orientation) : GdImage

imagerotate は反時計回りが正方向のため、Orientation 6(時計回り90度)は -90、 Orientation 8(反時計回り90度)は +90 に対応する。1 や未知の値は無変換。

Parameters
$image : GdImage
$orientation : int
Return values
GdImage

変換後の画像(回転を伴う場合は新しいリソース)

loadGdImageFromPath()

画像パスからGDImage or resourceを生成

protected loadGdImageFromPath(string $path) : GdImage
Parameters
$path : string
Tags
throws
InvalidArgumentException
throws
RuntimeException
Return values
GdImage

mimeTypeToExtension()

画像パスから画像拡張子を取得

protected mimeTypeToExtension(string $mimeType[, T $fallback = 'jpg' ]) : string|T
Parameters
$mimeType : string
$fallback : T = 'jpg'
Tags
template
Return values
string|T

outputImage()

画像ファイルを書き出し

protected outputImage(GdImage|false $resource, string $imageType, string $destPath) : void
Parameters
$resource : GdImage|false
$imageType : string
$destPath : string
Tags
throws
InvalidArgumentException

readExifOrientation()

画像パスから EXIF Orientation(1〜8)を取得する。

protected readExifOrientation(string $path) : int

exif 拡張が無い、JPEG / TIFF でない、または取得に失敗した場合は 1(無変換)を返す。

Parameters
$path : string
Return values
int

doResize()

リサイズ・回転して書き出す実処理

private doResize(GdImage $resource, string $srcPath, string $destPath, int $srcWidth, int $srcHeight, int $srcX, int $srcY, int $destWidth, int $destHeight, int $destX, int $destY, int $canvasWidth, int $canvasHeight, array{0: int, 1: int, 2: int} $color[, int|null $angle = null ]) : void

$resource は呼び出し側で向きが確定済みであることを前提とする (本メソッドでは EXIF Orientation の適用を行わない)。

Parameters
$resource : GdImage
$srcPath : string
$destPath : string
$srcWidth : int
$srcHeight : int
$srcX : int
$srcY : int
$destWidth : int
$destHeight : int
$destX : int
$destY : int
$canvasWidth : int
$canvasHeight : int
$color : array{0: int, 1: int, 2: int}
$angle : int|null = null

rotateGdImage()

imagerotate で回転し、成功時は元リソースを破棄して新リソースを返す。

private rotateGdImage(GdImage $image, int $angle) : GdImage
Parameters
$image : GdImage
$angle : int

反時計回りの角度

Return values
GdImage

        
On this page

Search results