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
![testavatar_result.jpg testavatar_result.jpg](https://www.tutorials.de/data/attachments/46/46665-4d2e8fb58f3bcc8ad8ab242aed731d92.jpg)
Original siehe hier:
![Terminator_Hauptseite.jpg Terminator_Hauptseite.jpg](https://www.tutorials.de/data/attachments/46/46666-9803c628f2757f3130d9f65d1cac301d.jpg)
Irgendwas scheint da mit den Koordinaten nicht zu stimmen... Hilfe bitte![Smile :) :)](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
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
![testavatar_result.jpg testavatar_result.jpg](https://www.tutorials.de/data/attachments/46/46665-4d2e8fb58f3bcc8ad8ab242aed731d92.jpg)
Original siehe hier:
![Terminator_Hauptseite.jpg Terminator_Hauptseite.jpg](https://www.tutorials.de/data/attachments/46/46666-9803c628f2757f3130d9f65d1cac301d.jpg)
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);