imagecopyresampled
COPY and
RESIZE an entire or part image over another image with resampling.
This function copies one image (or part) to another, performing pixel interpolation, generally reducing the size of the resulting image.
This function will take a rectangular area from $src_image of width $src_width and height $src_height at position ($src_x, $src_y) and place it in a rectangular area of $dst_image of width $dst_w and height $dst_h at position ($dst_x, $dst_y).
If the source and destination coordinates and width and heights differ, appropriate stretching or shrinking of the image fragment will be performed.
The coordinates refer to the upper left corner.
This function can be used to copy regions within the same image, (if $dst_image is the same as $src_image), but if the regions overlap the results will be unpredictable.
This function returns TRUE on success or FALSE on failure.
<?php
bool imagecopyresampled ( GdImage $dst_image,
GdImage $src_image,
int $dst_x , int $dst_y ,
int $src_x , int $src_y ,
int $dst_w , int $dst_h ,
int $src_width , int $src_height )
where,
$dst_image = The destination image identifier
$src_image = The source image identifier
$dst_x = The x-coordinate of destination point
$dst_y = The y-coordinate of destination point
$src_x = The x-coordinate of source point
$src_y = The y-coordinate of source point
$dst_w = The destination width
$dst_h = The destination height
$src_width = The source width
$src_height = The source height
?>
$dst_image
The destination image identifier.
$src_image
The source image identifier.
$dst_x
The x-coordinate of destination point.
$dst_y
The y-coordinate of destination point.
$src_x
The x-coordinate of source point.
$src_y
The y-coordinate of source point.
$src_width
The source width.
$src_height
The source height.
EXERCISE
<?php
echo 'PHP VERSION: ' . PHP_VERSION . '<br><br>';
// $lang = 'pt';
$lang = 'en';
$base_img01 = "jpeg/JPEG 022 01(flowers).jpg";
$dest_img01 = "jpeg/JPEG 022 01(flowers)-resampled.jpg";
$id_base01 = imagecreatefromjpeg($base_img01);
$base_w01 = imagesx($id_base01);
$base_h01 = imagesy($id_base01);
$dim01 = '<br>( ' . $base_w01 . 'px X ' . $base_h01 . 'px )';
echo $base_img01; ?>
<?php echo $dim01; ?><br><br>
<img src="<?php echo $base_img01; ?>"
alt="<?php echo $base_img01; ?>"
title="<?php echo $base_img01; ?>">
<br><br><br>
<?php
// 30% of the original image
$dest_w01 = bcmul($base_w01, 0.3);
$dest_h01 = bcmul($base_h01, 0.3);
$id_dest01 = imagecreatetruecolor($dest_w01, $dest_h01);
$dest_x01 = 0;
$dest_y01 = 0;
$src_x01 = 0;
$src_y01 = 0;
$bool_res01 = imagecopyresampled($id_dest01, $id_base01,
$dest_x01, $dest_y01,
$src_x01, $src_y01,
$dest_w01, $dest_h01,
$base_w01, $base_h01);
if($bool_res01 == FALSE)
{
$pt = "A imagem não pôde ser reamostrada!";
$en = "The image could not be resampled!";
echo '<br><br>' . $$lang . '<br><br>';
}
else
{
imagejpeg($id_dest01, $dest_img01);
$dest_w01 = imagesx($id_dest01);
$dest_h01 = imagesy($id_dest01);
$dim01 = '<br>( ' . $dest_w01 . 'px X ' . $dest_h01 . 'px )';
echo $dest_img01; ?>
<?php echo $dim01; ?><br><br>
<img src="<?php echo $dest_img01; ?>"
alt="<?php echo $dest_img01; ?>"
title="<?php echo $dest_img01; ?>">
<?php
}
?>
RESULT JPEG 022 01(flowers).jpg
( 400px X 300px )
JPEG 022 01(flowers)-resampled.jpg
( 120px X 90px )
EXERCISE
<?php
echo 'PHP VERSION: ' . PHP_VERSION . '<br><br>';
// $lang = 'pt';
$lang = 'en';
$base_img02 = "bmp/BMP 008 01.bmp";
$dest_img02 = "png/PNG 041 01-resampled.png";
$id_base02 = imagecreatefrombmp($base_img02);
$base_w02 = imagesx($id_base02);
$base_h02 = imagesy($id_base02);
$dim02 = '( ' . $base_w02 . 'px X ' . $base_h02 . 'px )';
echo $base_img02; ?><br>
<?php echo $dim02; ?><br><br>
<img src="<?php echo $base_img02; ?>"
alt="<?php echo $base_img02; ?>"
title="<?php echo $base_img02; ?>" width="200">
<br><br><br>
<?php
// 50% higher
$dest_w02 = bcmul($base_w02, 1.5);
$dest_h02 = bcmul($base_h02, 1.5);
$id_dest02 = imagecreatetruecolor($dest_w02, $dest_h02);
$dest_x02 = 0;
$dest_y02 = 0;
$src_x02 = 0;
$src_y02 = 0;
$b_res02 = imagecopyresampled($id_dest02, $id_base02,
$dest_x02, $dest_y02,
$src_x02, $src_y02,
$dest_w02, $dest_h02,
$base_w02, $base_h02);
if($b_res02 == FALSE)
{
$pt = "A imagem não pôde ser reamostrada!";
$en = "The image could not be resampled!";
echo '<br><br>' . $$lang . '<br><br>';
}
else
{
imagepng($id_dest02, $dest_img02);
$dest_w02 = imagesx($id_dest02);
$dest_h02 = imagesy($id_dest02);
$dim02 = '( ' . $dest_w02 . 'px X ' . $dest_h02 . 'px )';
echo $dest_img02; ?><br>
<?php echo $dim02; ?><br><br>
<img src="<?php echo $dest_img02; ?>"
alt="<?php echo $dest_img02; ?>"
title="<?php echo $dest_img02; ?>" width="400">
<?php
}
?>
RESULT BMP 008 01.bmp
( 400px X 300px )
PNG 041 01-resampled.png
( 600px X 450px )
EXERCISE
<?php
echo 'PHP VERSION: ' . PHP_VERSION . '<br><br>';
// $lang = 'pt';
$lang = 'en';
$base_img03a = "bmp/BMP 009 03 Katedrála Sv. Víta.bmp";
$base_img03b = "jpeg/JPEG 023 03 Socha sv. Jiří.jpg";
$dest_img03b = "png/PNG 042 03 Katedrála Sv. Víta.png";
$id_base03a = imagecreatefrombmp($base_img03a);
$base_w03a = imagesx($id_base03a);
$base_h03a = imagesy($id_base03a);
$dim03a = '( ' . $base_w03a . 'px X ' . $base_h03a . 'px )';
echo $base_img03a; ?><br>
<?php echo $dim03a; ?><br><br>
<img src="<?php echo $base_img03a; ?>"
alt="<?php echo $base_img03a; ?>"
title="<?php echo $base_img03a; ?>" width="200">
<br><br><br>
<?php
$id_base03b = imagecreatefromjpeg($base_img03b);
$base_w03b = imagesx($id_base03b);
$base_h03b = imagesy($id_base03b);
$dim03b = '( ' . $base_w03b . 'px X ' . $base_h03b . 'px )';
echo $base_img03b; ?><br>
<?php echo $dim03b; ?><br><br>
<img src="<?php echo $base_img03b; ?>"
alt="<?php echo $base_img03b; ?>"
title="<?php echo $base_img03b; ?>" width="400">
<br><br><br>
<?php
$dest_w03b = 200;
$dest_h03b = 200;
$id_dest03b = imagecreatefrombmp($base_img03a);
$dest_x03b = 0;
$dest_y03b = 0;
$src_x03b = 0;
$src_y03b = 0;
$bool_res03b =
imagecopyresampled($id_dest03b, $id_base03b,
$dest_x03b, $dest_y03b,
$src_x03b, $src_y03b,
$dest_w03b, $dest_h03b,
$base_w03b, $base_h03b);
if($bool_res03b == FALSE)
{
$pt = "A imagem não pôde ser reamostrada!";
$en = "The image could not be resampled!";
echo '<br><br>' . $$lang . '<br><br>';
}
else
{
imagepng($id_dest03b, $dest_img03b);
$dest_w03b = imagesx($id_dest03b);
$dest_h03b = imagesy($id_dest03b);
$dim03b = '( ' . $dest_w03b . 'px X ' . $dest_h03b . 'px )';
echo $dest_img03b; ?><br>
<?php echo $dim03b; ?><br><br>
<img src="<?php echo $dest_img03b; ?>"
alt="<?php echo $dest_img03b; ?>"
title="<?php echo $dest_img03b; ?>" width="200">
<?php
}
?>
RESULT BMP 009 03 Katedrála Sv. Víta.bmp
( 616px X 408px )
JPEG 023 03 Socha sv. Jiří.jpg
( 1272px X 856px )
PNG 042 03 Katedrála Sv. Víta.png
( 616px X 408px )