$image = 'image/' . $result['image'];
$imagedetails = getimagesize($image);
$imgwidth = $imagedetails[0];
$imgheight = $imagedetails[1];
$imgwidth_max = $imgwidth / 3 + $imgwidth;
$imgheight_max = $imgheight / 3 + $imgheight;
if ($imgwidth_max > $imgheight) {
$imgclass = '2';
} else if ($imgwidth_max < $imgheight) {
$imgclass = '3';
}
$even_img_diff = 100; // задайте тут число по вкусу. Это максимальная разница между шириной и высотой при которой картинка будет счиататься "квадратной".
$img_diff = abs($imgwidth_max-$imgheight);
if ($img_diff <= $even_img_diff ) {
// почти квадратная
} elseif ($imgwidth_max > $imgheight) {
$imgclass = '2';
} elseif ($imgwidth_max < $imgheight) {
$imgclass = '3';
}
// Пороговые значения
$min_ratio = 0.8;
$max_ratio = 1.2;
// Берем изображение и получает размеры
$image = "image/{$result['image']}";
$image_size = getimagesize($image);
// Определяем соотношение сторон c точностью до 1 знака после запятой
$ratio = round($image_size[0] / $image_size[1], 1);
// Определяем "квадратное" наше изображение или нет
if( ($min_ratio <= $ratio) && ($ratio <= $max_ratio) ) {
dump( 'Оно квадратное!' );
} else {
dump( 'Фигушки.' );
}
$p = $imgwidth * 1.0 / $imgheight; // пропорция; умножение на 1.0 чтобы перевести число в float;
$delta_q = 0.1; // Дельта ощущения "квадратности" изображения
switch(true)
{
case $p > (1.0 + $delta_q): echo 'альбомный формат изображения'; break;
case $p < (1.0 - $delta_q): echo 'книжный формат изображения'; break;
default: echo 'изображение, вероятно, квадратное';
}