Hallo,
ich habe hier ein Script gebastelt, um einheitliche Profilbilder zu haben, nämlich 150x150px.
Der Benutzer läd z.B. ein jpg mit 288x338px hoch und durch die Funktion imagecopyresampled zentriere ich eine 150x150px große Auswahl in der Mitte des hochgeladenen Bildes und speicher dies dann.
Soweit die Theorie...
In der Praxis erhalte ich sowas

Original siehe hier:

Irgendwas scheint da mit den Koordinaten nicht zu stimmen... Hilfe bitte
ich habe hier ein Script gebastelt, um einheitliche Profilbilder zu haben, nämlich 150x150px.
Der Benutzer läd z.B. ein jpg mit 288x338px hoch und durch die Funktion imagecopyresampled zentriere ich eine 150x150px große Auswahl in der Mitte des hochgeladenen Bildes und speicher dies dann.
Soweit die Theorie...
In der Praxis erhalte ich sowas

Original siehe hier:

Irgendwas scheint da mit den Koordinaten nicht zu stimmen... Hilfe bitte

PHP:
// Get file from upload form
$filename = $_FILES['profilbildupload']['tmp_name'];
// Get file dimensions
list($orig_width, $orig_height) = GetImageSize($filename); // Orig img dimensions 288x338px
// New Thumbnail size
$new_width = 150;
$new_height = 150;
// Center Crop
$start_x = floor(($orig_width/2)-($new_width/2)); // Result: 69px from left
$start_y = floor(($orig_height/2)-($new_height/2)); // Result: 94px from top
// Resample
$image_p = imagecreatetruecolor($new_width, $new_height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, $start_x, $start_y, $new_width, $new_height, $orig_width, $orig_height);
// Output
$save_img_to_path = $_SERVER['DOCUMENT_ROOT'].'/_profilbilder/'.$_SESSION['webuser']['ID'].'.jpg';
imagejpeg($image_p, $save_img_to_path, 100);