Я пытаюсь изменить сценарий загрузки, на данный момент я могу обрезать изображение на квадрат при изменении размера - отлично!Обрезание любого изображения до 4: 3
Однако я хотел был бы, чтобы пользователь мог загружать изображение любого размера, а для скрипта создавать 200x150, 400x300, 800x600 миниатюры/изображения - соотношение 4: 3.
Мой код до сих пор:
list($width,$height) = getimagesize($uploadedfile);
if ($thumb == 1){
if ($width > $height) {
$y = 0;
$x = ($width - $height)/2;
$smallestSide = $height;
} else {
$x = 0;
$y = ($height - $width)/2;
$smallestSide = $width;
}
// copying the part into thumbnail
$thumbSize = 200;
$tmp = imagecreatetruecolor($thumbSize, $thumbSize);
imagecopyresampled($tmp, $src, 0, 0, $x, $y, $thumbSize, $thumbSize, $smallestSide, $smallestSide);
// write thumbnail to disk
$write_thumbimage = $folder .'/thumb-'. $image;
switch($ext){
case "gif":
imagegif($tmp,$write_thumbimage);
break;
case "jpg":
imagejpeg($tmp,$write_thumbimage,100);
break;
case "jpeg":
imagejpeg($tmp,$write_thumbimage,100);
break;
case "png":
imagepng($tmp,$write_thumbimage);
break;
}
Кто-нибудь знает требуемую формулу или может мне точку в правильном направлении?
возможно дубликат [растениеводстве изображения до 4: 3 соотношение сторон C#] (http://stackoverflow.com/questions/18494403/crop-image-to-43-aspect-ratio-c-sharp) – halfer
Если это математика, которую вы используете, чтобы рассчитать ширину и высоту для этого соотношения сторон, см. возможный дубликат. Это для C#, но из кода должно быть достаточно ясно, как это сделать. – halfer
@halfer - Я после объяснения кода в PHP, а не C#, так что вряд ли дублирование? – potts