Scaling Images
There are two ways to change the size
of an image. The ImageCopyResized( )
function is
available in all versions of GD, but its resizing algorithm is crude
and may lead to jagged edges in your new images. The
ImageCopyResampled( )
function is new in GD 2.x
and features pixel interpolation to give smooth edges and clarity to
resized images (it is, however, slower than
ImageCopyResized( )
). 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-10 takes the php.jpg
image shown in Figure 9-8 and smoothly scales it
down to one-quarter of its size, yielding the image in Figure 9-9.
Figure 9-8. Original php.jpg image
Example 9-10. Resizing with ImageCopyResampled( )
<?php $src = ImageCreateFromJPEG('php.jpg'); $width = ImageSx($src); $height = ImageSy($src); $x = $width/2; $y = $height/2; $dst = ImageCreateTrueColor($x,$y); ImageCopyResampled($dst,$src,0,0,0,0,$x,$y,$width,$height); header('Content-Type: image/png'); ImagePNG($dst); ?>
The ...
Get Programming PHP now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.