Привет всем, у меня на движке есть скрипт который создает thumbnail файлы,
но я хочу его изменить, во первых нужно убрать функцию CROP-а, и оставить только ресайз,
и сделать так что бы height был auto, то есть width: 350px а height то что подходит к ширине по aspect ratio.
Сам не смог так как я новичок в PHP, буду очень признателень если поможете. Ниже полный код функции
if ( ! function_exists('create_aspect_ratio_thumb'))
{
function create_rectangle_thumb($img,$dest)
{
$seg = explode('.',$img);
$thumbType = 'jpg';
$thumbSize = 300;
$thumbWidth = 350;
$thumbPath = $dest;
$thumbQuality = 90;
$last_index = count($seg);
$last_index--;
if(strcasecmp($seg[$last_index], 'jpg') == 0 || strcasecmp($seg[$last_index], 'jpeg') == 0)
{
if (!$full = imagecreatefromjpeg($img)) {
return 'error';
}
}
else if(strcasecmp($seg[$last_index], 'png') == 0)
{
if (!$full = imagecreatefrompng($img)) {
return 'error';
}
}
else if(strcasecmp($seg[$last_index], 'gif') == 0)
{
if (!$full = imagecreatefromgif($img)) {
return 'error';
}
}
$width = imagesx($full);
$height = imagesy($full);
/* work out the smaller version, setting the shortest side to the size of the thumb, constraining height/wight */
if ($height > $width) {
$divisor = $width / $thumbHeight;
} else {
$divisor = $height / $thumbWidth;
}
$resizedWidth = ceil($width / $divisor);
$resizedHeight = ceil($height / $divisor);
/* work out center point */
$thumbx = floor(($resizedWidth - $thumbWidth) / 2);
$thumby = floor(($resizedHeight - $thumbHeight) / 2);
/* create the small smaller version, then crop it centrally to create the thumbnail */
$resized = imagecreatetruecolor($resizedWidth, $resizedHeight);
$thumb = imagecreatetruecolor($thumbWidth, $thumbHeight);
imagecopyresized($resized, $full, 0, 0, 0, 0, $resizedWidth, $resizedHeight, $width, $height);
imagecopyresized($thumb, $resized, 0, 0, $thumbx, $thumby, $thumbWidth, $thumbHeight, $thumbWidth, $thumbHeight);
$name = name_from_url($img);
imagejpeg($thumb, $thumbPath.str_replace('_large.jpg', '_thumb.jpg', $name), $thumbQuality);
}
}