a-blog cms PHP API Reference

ImageEngine
in package

AbstractYes

Table of Contents

Properties

$imageQuality  : int
画質
$mimeTypeMap  : array<string|int, mixed>
MIME Type テーブル
$optimizer  : ImagerOptimizer|null

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
WebP画像がサポートされているか判定
optimize()  : void
ロスレス圧縮を実行
resizeImage()  : void
画像をリサイズ
setImageQuality()  : void
画質をセット
setOptimizer()  : void
画像オプティマイザーを設定
shouldReadFromLocalStorage()  : bool
指定のパスを LocalStorage(ローカルファイルシステム)から直接読むべきか判定する
supportsExifOrientation()  : bool
この環境で EXIF Orientation による向き補正がサポートされているか判定
mimeTypeToExtension()  : string|T
画像パスから画像拡張子を取得

Properties

$mimeTypeMap

MIME Type テーブル

private array<string|int, mixed> $mimeTypeMap = ['image/gif' => 'gif', 'image/png' => 'png', 'image/vnd.wap.wbmp' => 'bmp', 'image/xbm' => 'xbm', 'image/jpeg' => 'jpg', 'image/webp' => 'webp']

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 abstract copyImage(string $srcPath, string $distPath[, string|null $format = null ]) : void
Parameters
$srcPath : string
$distPath : string
$format : string|null = null

copyImageAsWebp()

WebP画像として画像を複製

public abstract copyImageAsWebp(string $srcPath, string $distPath) : void
Parameters
$srcPath : string
$distPath : string

detectImageExtenstion()

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

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

editImage()

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

public abstract 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 abstract getOrientedSize(string $path) : array{0: int, 1: int}

Orientation 5〜8(90度/270度回転)の画像は表示上の幅・高さが格納ピクセルと 入れ替わる。resizeImage() を直接呼ぶ側(ImageResize 等)はこのメソッドで 取得した寸法を基準に src/dest/canvas を計算すること。resizeImage() 自身は 呼び出し元の寸法計算と整合させるため、内部で EXIF Orientation を適用する。

Parameters
$path : string
Return values
array{0: int, 1: int}

getSize()

画像サイズを取得

public abstract 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()

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

public abstract isWebpSupported() : bool
Return values
bool

optimize()

ロスレス圧縮を実行

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

resizeImage()

画像をリサイズ

public abstract 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
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()

この環境で EXIF Orientation による向き補正がサポートされているか判定

public abstract supportsExifOrientation() : bool

Imagick は autoOrient がネイティブに EXIF を扱うため常に true。GD は exif_read_data(ext-exif)に依存するため、拡張の有無で結果が変わる。

Return values
bool

mimeTypeToExtension()

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

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

        
On this page

Search results