Привет всем, у меня есть php-скрипт для изменения размера изображений до определенного размера, если аспект тот же, он просто изменяет их размер, но если он другой, он сначала их обрезает. Я просто хотел убедиться, что моя логика верна и что это будет вычислять соответствующие размеры для всех размеров исходного и целевого изображения:
$sourceratio = $actualsourcewidth / $actualsourceheight;
$targetratio = $targetwidth / $targetheight;
if ($targetratio < $sourceratio)
{
$srcheight = $actualsourceheight;
$srcwidth = $actualsourceheight * $targetratio;
$srcy = 0;
$srcx = floor(($actualsourcewidth - $srcwidth) / 2);
$srcwidth = floor($srcwidth);
} else if ($targetratio > $sourceratio)
{
$srcwidth = $actualsourcewidth;
$srcheight = $actualsourcewidth / $targetratio;
$srcy = floor(($actualsourceheight - $srcheight) / 2);
$srcx = 0;
$srcheight = floor($srcheight);
} else
{
// Same aspect ratio so you can resize the image without cropping
$srcheight = $actualsourceheight;
$srcwidth = $actualsourcewidth;
$srcx = 0;
$srcy = 0;
}
Из того, что я могу понять, это должно уловить все возможности и создать начальные координаты x, y ($srcx
и $srcy
) и исходные размеры ($srcwidth
, $srcheight
), которые затем можно передать в imagecopyresampled
.
Главное, что я хотел проверить, это то, что проверка соотношения не позволит $srcheight
и $srcwidth
когда-либо быть больше исходной ширины/высоты, так как это сломает его, но я не думаю, что это произойдет?
Большое спасибо как никогда всем!
Дэйв