Изменение размера / Обрезание изображения для настройки в макете

У меня проблема с повторной калибровкой / масштабированием эскизов в желаемый макет. Я могу генерировать эскизы вот код для обрезки / изменения размера.

$filename = $key.$_FILES["files"]["name"][$key]; $filetmp = $_FILES["files"]["tmp_name"][$key]; $filetype = $_FILES["files"]["type"][$key]; $filesize = $_FILES["files"]["size"][$key]; $fileinfo = getimagesize($tmp_name); $filewidth = $fileinfo[0]; $fileheight = $fileinfo[1]; // GETS FILE EXTENSION $fileextension = pathinfo($filename, PATHINFO_EXTENSION); $microtime = preg_replace('/[^A-Za-z0-9]/', "", microtime()); $filepath = "../static/products/".$microtime.".".$fileextension; $filepath_thumb = "../static/products/thumbs/".$microtime.".".$fileextension; $filepath2 = "/static/products/".$microtime.".".$fileextension; move_uploaded_file($filetmp,$filepath); if ($filetype == "image/jpeg") { $imagecreate = "imagecreatefromjpeg"; $imageformat = "imagejpeg"; } if ($filetype == "image/png") { $imagecreate = "imagecreatefrompng"; $imageformat = "imagepng"; } if ($filetype == "image/gif") { $imagecreate = "imagecreatefromgif"; $imageformat = "imagegif"; } $ratio = $filewidth * 1.0 / $fileheight; // width/height if( $ratio > 1) { $new_width = 600; $new_height = 600/$ratio; } else { $new_width = 600*$ratio; $new_height = 600; } $image_p = imagecreatetruecolor($new_width, $new_height); $image = $imagecreate($filepath); //photo folder imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $filewidth, $fileheight); $imageformat($image_p, $filepath_thumb);//thumb folder 

Проблема:

Я не знаю, каков будет размер файла изображения, но это, безусловно, изображение HD / DSLR. Теперь приведенный выше сценарий генерирует миниатюру с соотношением = 600 пикселей и высотой = изображения (например, 600×400)

В моем макете я хочу, чтобы этот эскиз был отрегулирован каким-то образом, что я не буду искажаться или растягиваться каким-либо образом. Контейнер, содержащий миниатюру, имеет ширину / высоту 200 x 200 пикселей.

Когда эскизы отображаются в браузере, его размер равен 600px × 401px (увеличен до 200px × 200px), высота для каждого изображения является случайной.

HTML:

 <li class="column"> <div class="post-image"> <a href="http://localhost/example/products/40/"> <img src="http://localhost/example/static/products/thumbs/0446826001431411830.JPG" alt="my photo" /></a> </div> <div class="product-detail"> <h4 class="post-title"> <a href="/post/40/">Post title</a> </h4> </div> </li> 

CSS

 .post-image{ width:100%; height:200px; } .post-image img { width:auto; height:100%; min-height:200px; } 

Что может быть решением для точно масштабированного до 200 x 200 пикселей без спецификации ширины х высоты …