2016-06-17 29 views
0

I-Code verwenden für das ZuschneidenCropping ist an der linken Seite des Bildes gemacht

$filename = "thimg.jpg"; 

// Get dimensions of the coriginal image 
list($width, $height) = getimagesize($filename); 

// Resample the image 
$canvas = imagecreatetruecolor('759', '599'); 
$current_image = imagecreatefromjpeg($filename); 
imagecopy($canvas, $current_image, 0, 0, $width/8, $height/8, '759', '599'); 
imagejpeg($canvas, $filename.'_cropped.jpg', 100); 
chmod($filename.'_cropped.jpg', 0644); 
unlink($filename); 

Aber es ist in der linken Seite des Bildes nicht in der Mitte abgeschnitten.

bitte Vorschlag machen.

Antwort

1

Das Ergebnis von $width/8 und $height/8 sind nicht korrekt für eine zentrierte Ernte.

Sie müssen berechnen:

(original_width & teilen; 2) − (target_width & divide; 2)

und:

(original_height & teilen; 2) − (target_height & divide; 2)

In Ihrem speziellen Fall, dass aussehen würde: auch

imagecopy($canvas, $current_image, 0, 0, ($width/2)-(759/2), ($height/2)-(599/2), 759, 599); 

Beachten Sie, dass Sie Ihre Größe Werte als integer (759, 599), nicht Zeichenfolge ('759', '599') passieren sollte.

+0

wow ... genau das, was ich wollte. nur eine letzte Anfrage. wie kann man png und gif bekommen, was soll ich für png und gif image ändern? – Adas

+1

[imagecreatefrompng] (http://php.net/manual/en/function.imagecreatefrompng.php) und [imagecreatefromgif] (http://php.net/manual/en/function.imagecreatefromgif.php) um die Bilder zu lesen; [imagepng] (http://php.net/manual/en/function.imagepng.php) und [imagegif] (http://php.net/manual/en/function.imagegif.php) zu gib die Bilder aus. [Das Handbuch] (http://php.net/manual/en/) ist eine unschätzbare Ressource. – timclutton