Content · Web Development · PHP

PHP imagecopyresized() Function: Usage and Examples

Copies and resizes a rectangle with fast nearest-neighbor scaling.

1 views Published Oct 17, 2026 Updated Oct 17, 2026 admin

Copies and resizes a rectangle with fast nearest-neighbor scaling.

What It Does


imagecopy() does not resize; imagecopyresampled() performs smooth resampling. It is faster but visibly blockier for photographs than imagecopyresampled().

Requirements and Compatibility


GD extension. Sample images and fonts referred to by filename must be supplied locally. Use PHP 8 GdImage objects where applicable; optional decoders depend on the installed build.

Syntax, Inputs and Results


The arguments shown below are concrete values for this function; their types and ranges matter. The example checks return data rather than assuming that every operation succeeds.

Example 1: Basic Use


Call the function with a concrete input and inspect its result.

<?php
if (!extension_loaded('gd')) throw new RuntimeException('GD extension required');
$im = imagecreatetruecolor(160, 110);
$white = imagecolorallocate($im, 255, 255, 255);
imagefilledrectangle($im, 0, 0, 159, 109, $white);
$src = imagecreatetruecolor(40, 40);
imagefilledrectangle($src, 0, 0, 39, 39, imagecolorallocate($src, 200, 65, 60));
imageline($src, 0, 0, 39, 39, imagecolorallocate($src, 255, 255, 255));
$ok = imagecopyresized($im, $src, 0, 0, 0, 0, 80, 80, 40, 40);
var_dump($ok);

Example 2: Another Case


Change the inputs to observe the behavior on another case.

<?php
if (!extension_loaded('gd')) throw new RuntimeException('GD extension required');
$im = imagecreatetruecolor(160, 110);
$white = imagecolorallocate($im, 255, 255, 255);
imagefilledrectangle($im, 0, 0, 159, 109, $white);
$src = imagecreatetruecolor(40, 40);
imagefilledrectangle($src, 0, 0, 39, 39, imagecolorallocate($src, 200, 65, 60));
imageline($src, 0, 0, 39, 39, imagecolorallocate($src, 255, 255, 255));
$ok = imagecopyresized($im, $src, 5, 5, 0, 0, 100, 50, 40, 40);
var_dump($ok);

Practical Example


Use the result to create an output, validate a condition, or complete an image workflow.

<?php
if (!extension_loaded('gd')) throw new RuntimeException('GD extension required');
$im = imagecreatetruecolor(160, 110);
$white = imagecolorallocate($im, 255, 255, 255);
imagefilledrectangle($im, 0, 0, 159, 109, $white);
$src = imagecreatetruecolor(40, 40);
imagefilledrectangle($src, 0, 0, 39, 39, imagecolorallocate($src, 200, 65, 60));
imageline($src, 0, 0, 39, 39, imagecolorallocate($src, 255, 255, 255));
imagecopyresized($im, $src, 5, 5, 0, 0, 100, 50, 40, 40);
if (!imagepng($im, __DIR__ . "/imagecopyresized-demo.png")) throw new RuntimeException("Unable to save");

For production, apply the compatibility and edge-case limits described below.

Important Behavior and Edge Cases


It is faster but visibly blockier for photographs than imagecopyresampled().

Comparison with Related Functions and Tools


SubjectKey difference
imagecopyresized()imagecopy() does not resize; imagecopyresampled() performs smooth resampling.

Common Beginner Mistakes


MistakeCorrect approach
Calling imagecopyresized() without its required input or supported extensionCheck the extension, supply valid arguments, and handle false or exceptions according to the function.
Assuming imagecopyresized() guarantees a valid or safe imageIt is faster but visibly blockier for photographs than imagecopyresampled().
Confusing the operation with a related APIimagecopy() does not resize; imagecopyresampled() performs smooth resampling.

Key Takeaways


  • Copies and resizes a rectangle with fast nearest-neighbor scaling.
  • It is faster but visibly blockier for photographs than imagecopyresampled().
  • Choose the companion API described in the comparison table when the job differs.

Use these examples as a starting point, then validate the result with the actual PHP build, dependencies and inputs used by your application.

Share this resourceSend this page to someone who may find it useful.