imagecrop

(PHP 5 >= 5.5.0, PHP 7)

imagecropRecadre une image sur le rectangle donné

Description

resource imagecrop ( resource $image , array $rect )

Recadre une image à la zone rectangulaire donnée et retourne l'image résultante. L'image n'est pas modifiée.

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

rect

array contenant les clés x, y, width et height.

Valeurs de retour

Retourne la ressource de l'image recadrée en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec imagecrop()

Cet exemple montre comment rogner une image sur une zone carrée.

<?php
$im 
imagecreatefrompng('example.png');
$size min(imagesx($im), imagesy($im));
$im2 imagecrop($im, ['x' => 0'y' => 0'width' => $size'height' => $size]);
if (
$im2 !== FALSE) {
    
imagepng($im2'example-cropped.png');
}
?>

Voir aussi

  • imagecropauto() - Recadre une image automatiquement en utilisant un des modes disponibles
add a note add a note

User Contributed Notes 3 notes

up
7
robert at woodst dot com
1 year ago
It appears that imagecrop() will output a black line along the bottom the resulting image until version 5.6.12. Your only choices are to upgrade PHP or use imagecopyresampled().

http://php.net/ChangeLog-5.php#5.6.12 (bug #67447)
up
0
shaun at slickdesign dot com dot au
16 days ago
Use imagecopyresampled to crop your image instead, and it should work correctly in PHP 5.5+ without any black lines.

<?php
// Desired function call.
$cropped = imagecrop( $image, array( 'x' => $x, 'y' => $y, 'width' => $width, 'height' => $height ) );

// Equivalent function which works in both PHP pre 5.6.12 and 5.6.12+.
$cropped = imagecreatetruecolor( $width, $height );
imagecopyresampled( $cropped, $image, 0, 0, $x, $y, $width, $height, $width, $height );
?>
up
0
vanadragos at yahoo dot com
1 month ago
To get the center crop of a image in php:

           
$new = imagecreatefromjpeg($uploadedfile);

    $crop_width = imagesx($new);
    $crop_height = imagesy($new);
               
            $size = min($crop_width, $crop_height);
           
           
            if($crop_width >= $crop_height) {
            $newx= ($crop_width-$crop_height)/2;
           
            $im2 = imagecrop($new, ['x' => $newx, 'y' => 0, 'width' => $size, 'height' => $size]);
            }
            else {
                $newy= ($crop_height-$crop_width)/2;
           
                $im2 = imagecrop($new, ['x' => 0, 'y' => $newy, 'width' => $size, 'height' => $size]);
                }
           
               
    imagejpeg($im2,$filename,90);
To Top