Cześć,
ma ktoś jakąś porządną funkcję do cropu obrazka przy uploadzie? Napisałem swoją ale przy nietypowych rozmiarach pojawia się problem i obrazki niekoniecznie dobrze wyglądają. Albo są za bardzo rozciągnięte albo coś...
Byłbym wdzięczny za podrzucenie takiego skryptu lub pomoc w przerobieniu mojego.
// Miniaturka
$thumbnail_width = 200;
$thumbnail_height = 200;
$thumb_beforeword = "thumb_";
$arr_image_details = getimagesize("./uploads/$new_name"); // pass id to thumb name
$original_width = $arr_image_details[0];
$original_height = $arr_image_details[1];
$w_ratio = ($thumbnail_width / $original_width);
$h_ratio = ($thumbnail_height / $original_height);
if ($original_width > 400 and $original_height > 400) {
if ($original_width > $original_height ) {//landscape
$crop_w = round($original_width * $h_ratio);
$crop_h = $thumbnail_height;
$src_x = ceil( ( $original_width - $original_height ) / 2 );
$src_y = 0;
} elseif ($original_width < $original_height ) {//portrait
$crop_h = round($original_height * $w_ratio);
$crop_w = $thumbnail_width;
$src_x = 0;
$src_y = ceil( ( $original_height - $original_width ) / 2 );
} else {//square
$crop_w = $thumbnail_width;
$crop_h = $thumbnail_height;
$src_x = 0;
$src_y = 0;
}
}
else {
if ($original_width > $original_height) {
$crop_w = $thumbnail_width;
$crop_h = intval($original_height * $crop_w / $original_width);
} else {
$crop_h = $thumbnail_height;
$crop_w = intval($original_width * $crop_h / $original_height);
}
$src_x = 0;
$src_y = 0;
}