PHP Velho Oeste 2024

imagecrop

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

imagecropGörüntüyü belirtilen dikdörtgen ile kırpar

Açıklama

imagecrop(GdImage $görüntü, array $dikdörtgen): GdImage|false

görüntüyü belirtilen dikdörtgen ile kırpar ve bir GDImage nesnesi olarak döndürür. Belirtilen görüntü olduğu gibi bırakılır.

Bağımsız Değişkenler

görüntü

imagecreatetruecolor() gibi bir görüntü oluşturma işlevinden dönen bir GdImage nesnesi.

dikdörtgen

x, y, width ve height anahtarlı bir dizi.

Dönen Değerler

Başarı durumunda kırpılmış GDImage nesnesi, başarısızlık durumunda false döner.

Sürüm Bilgisi

Sürüm: Açıklama
8.0.0 görüntü bağımsız değişkeninde artık bir GdImage nesnesi aktarmak gerekiyor; evvelce resource türünde geçerli bir gd değeri gerekirdi.
8.0.0 Başarı durumunda artık GDImage örneği dönüyor; evvelce resource türünde bir değer dönerdi.

Örnekler

Örnek 1 - imagecrop() örneği

Bu örnekte bir görüntü belirtilen dikdörtgen ile kırpılmaktadır.

<?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);
?>

Ayrıca Bakınız

  • imagecropauto() - Mevcut kiplerden birini kullanarak görüntüyü otomatik olarak kırpar
add a note add a note

User Contributed Notes 3 notes

up
14
robert at woodst dot com
7 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
-11
shaun at slickdesign dot com dot au
6 years 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
-14
vanadragos at yahoo dot com
6 years 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