Scaling Images
There are two ways to change the size of an image. The imagecopyresized() function is fast but crude,
and may lead to jagged edges in your new images. The imagecopyresampled() function is slower, but
features pixel interpolation to give smooth edges and clarity to the
resized image. Both functions take the same arguments:
imagecopyresized(dest,src,dx,dy,sx,sy,dw,dh,sw,sh); imagecopyresampled(dest,src,dx,dy,sx,sy,dw,dh,sw,sh);
The dest and
src parameters are image handles. The point
(dx, dy) is the point in the destination image where
the region will be copied. The point (sx, sy) is the upper-left corner of the source image.
The sw, sh,
dw, and dh
parameters give the width and height of the copy regions in the source and
destination.
Example 9-11 takes the php.jpg image shown in Figure 9-9 and smoothly scales it down to one-quarter of its size, yielding the image in Figure 9-10.
Example 9-11. Resizing with imagecopyresampled()
<?php$source=imagecreatefromjpeg("php.jpg");$width=imagesx($source);$height=imagesy($source);$x=$width/2;$y=$height/2;$destination=imagecreatetruecolor($x,$y);imagecopyresampled($destination,$source,0,0,0,0,$x,$y,$width,$height);header("Content-Type: image/png");imagepng($destination);

Figure 9-9. Original php.jpg image
Figure 9-10. Resulting 1/4-sized image
Dividing the height and the width by 4 instead ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access