[PHP] Upload zdjęcia i CROP

0

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;	
			}

1 użytkowników online, w tym zalogowanych: 0, gości: 1