imagecrop

(PHP 5 >= 5.5.0, PHP 7)

imagecropCrop an image to the given rectangle

Descrizione

imagecrop ( resource $image , array $rect ) : resource

Crops an image to the given rectangular area and returns the resulting image. The given image is not modified.

Elenco dei parametri

image

Una risorsa immagine, restituita da una delle funzioni di creazione immagine, come imagecreatetruecolor().

rect

The cropping rectangle as array with keys x, y, width and height.

Valori restituiti

Return cropped image resource on success o FALSE in caso di fallimento.

Esempi

Example #1 imagecrop() example

This example shows how to crop an image to a square area.

<?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');
    
imagedestroy($im2);
}
imagedestroy($im);
?>

Vedere anche:

  • imagecropauto() - Crop an image automatically using one of the available modes
add a note add a note

User Contributed Notes 3 notes

up
8
robert at woodst dot com
3 years 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
-2
shaun at slickdesign dot com dot au
1 year 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
-9
vanadragos at yahoo dot com
1 year 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