imagescale

(PHP 5 >= 5.5.0)

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

説明

resource imagescale ( resource $image , int $new_width [, int $new_height = -1 [, int $mode = IMG_BILINEAR_FIXED ]] )

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

パラメータ

image

imagecreatetruecolor() のような画像作成関数が返す画像リソース。

new_width

変更後の画像の幅。

new_height

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

警告

PHP 5.5.18 以前、あるいは PHP 5.6.2 以前のバージョンでは、常に高さを指定する必要があります。 これらのバージョンでは、高さを省略した場合のアスペクト比の計算が、正しく行われません。

mode

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

返り値

成功した場合に、縮尺を変更した画像リソースを返します。失敗した場合に FALSE を返します。

変更履歴

バージョン 説明
5.5.19/5.6.3 new_height が負の数だったり省略されていたりした場合の、高さの計算の問題が修正されました。 これより前のバージョンでは、アスペクト比を正確に保つことができませんでした。

add a note add a note

User Contributed Notes 2 notes

up
0
Anonymous
1 month ago
imageScale has got troubles with scaling images...
It can output Segmentation Fault when you want to provide custom $mode argument.
How to scale image with interpolation in php gd?
Use imagecopyresampled() instead of imagescale().
up
-32
abc at ed48.com
1 year ago
<img src="image.jpg" alt="image" /><br><br>
<?php
$org_info
= getimagesize("image.jpg");
echo
$org_info[3] . '<br><br>';
$rsr_org = imagecreatefromjpeg("image.jpg");
$rsr_scl = imagescale($rsr_org, 860, 860IMG_BICUBIC_FIXED);
imagejpeg($rsr_scl, "imagebfb.jpg");
imagedestroy($rsr_org);
imagedestroy($rsr_scl);
?>
<img src="imagebfb.jpg" alt="imagebfb" /><br><br>
<?php
$scl_info
= getimagesize("imagebfb.jpg");
echo
$scl_info[3];
?>
To Top