PHP Conference Nagoya 2025

imagescale

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

imagescale幅と高さを指定して、画像の縮尺を変更する

説明

imagescale(
    GdImage $image,
    int $width,
    int $height = -1,
    int $mode = IMG_BILINEAR_FIXED
): GdImage|false

imagescale() は、指定した補間アルゴリズムを使って画像の縮尺を変更します。

注意:

他の画像処理関数と異なり、 imagescale() 関数は渡された image を変更しません。 代わりに 新しい 画像が返されます。

パラメータ

image

imagecreatetruecolor()のような画像作成関数が返す GdImage オブジェクト。

width

変更後の画像の幅。

height

変更後の画像の高さ。省略したり負の数を指定したりした場合は、元の画像のアスペクト比を維持します。

mode

IMG_NEAREST_NEIGHBOURIMG_BILINEAR_FIXEDIMG_BICUBICIMG_BICUBIC_FIXED あるいはそれ以外 (2 パスで使います) のいずれか。

注意: IMG_WEIGHTED4 にはまだ対応していません。

戻り値

成功した場合に、縮尺を変更した画像オブジェクトを返します。失敗した場合に false を返します。

エラー / 例外

width または height がオーバーフローやアンダーフローを引き起こす場合、 ValueError をスローします。

mode が不正の場合、 ValueError をスローします。

変更履歴

バージョン 説明
8.4.0 width または height がオーバーフローやアンダーフローを引き起こす場合でも、 ValueError をスローしません。
8.4.0 mode が不正の場合、 ValueError をスローするようになりました。
8.0.0 成功時には、 この関数は GDImage クラスのインスタンスを返すようになりました。 これより前のバージョンでは、 resource を返していました。
8.0.0 image は、 GdImage クラスのインスタンスを期待するようになりました。 これより前のバージョンでは、有効な gd resource が期待されていました。

参考

add a note

User Contributed Notes 1 note

up
6
Anonymous
1 year ago
Seemingly, you can't omit the width the same way you do with the height. If you write -1 for the width and specify a number for the height it will return false
To Top