"mode" argument doesn't work in PHP 5.5.9. Do imagesetinterpolation($im,IMG_MODE); first, then do imagescale($im,$x,$y) to apply it in scaling.
(PHP 5 >= 5.5.0, PHP 7)
imagescale — Scale an image using the given new width and height
$image
, int $new_width
[, int $new_height
= -1
[, int $mode
= IMG_BILINEAR_FIXED
]] )imagescale() scales an image using the given interpolation algorithm.
image
An image resource, returned by one of the image creation functions, such as imagecreatetruecolor().
new_width
The width to scale the image to.
new_height
The height to scale the image to. If omitted or negative, the aspect ratio will be preserved.
You should always provide the height if using PHP 5.5.18 or earlier, or PHP 5.6.2 or earlier, as the aspect ratio calculation was incorrect.
mode
One of IMG_NEAREST_NEIGHBOUR
,
IMG_BILINEAR_FIXED
,
IMG_BICUBIC
,
IMG_BICUBIC_FIXED
or anything else (will use two
pass).
Return the scaled image resource on success or FALSE
on failure.
Version | Description |
---|---|
5.5.19/5.6.3 |
The calculation of the height if new_height was
negative or omitted was fixed; prior to these versions, the aspect
ratio was not maintained correctly.
|
"mode" argument doesn't work in PHP 5.5.9. Do imagesetinterpolation($im,IMG_MODE); first, then do imagescale($im,$x,$y) to apply it in scaling.
<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, 860, IMG_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];
?>