PHP: Определение дробного соотношения сторон изображения в PHP
Для определения соотношения сторон изображения в PHP можно использовать функции getimagesize() и gmp_gcd().
Функция getimagesize() возвращает массив, который содержит информацию о размере изображения.
Функция gmp_gcd() вычисляет наибольший общий делитель.
list( $width, $height, $type, $attr ) = getimagesize( "path/to/your/image.jpg" ); # находим наибольший общий делитель ширины и высоты изображения $gcd = gmp_intval( gmp_gcd( $width, $height ) ); # определяем соотношение сторон в виде дроби $aspect_ratio = $width / $gcd . '/' . $height / $gcd; # выводим результат в виде дроби echo 'Соотношение сторон изображения: ' . $aspect_ratio;
Если библиотека GMP не установлена в вашей системе:
list( $width, $height, $type, $attr ) = getimagesize( "path/to/your/image.jpg" ); function gcd( $a, $b ) { return ( $b == 0 ) ? $a : gcd( $b, $a % $b ); } $gcd = gcd( $width, $height ); $aspect_ratio = $width / $gcd . '/' . $height / $gcd; echo 'Соотношение сторон изображения: ' . $aspect_ratio;
Примеры расчёта для различных размеров изображения:
$width = 1600; $height = 900; echo 'Соотношение сторон изображения: ' . getAspectRatio( $width, $height ); // > Соотношение сторон изображения: 16/9 $width = 1024; $height = 768; echo 'Соотношение сторон изображения: ' . getAspectRatio( $width, $height ); // > Соотношение сторон изображения: 4/3 $width = 1200; $height = 600; echo 'Соотношение сторон изображения: ' . getAspectRatio( $width, $height ); // > Соотношение сторон изображения: 2/1 $width = 1000; $height = 1000; echo 'Соотношение сторон изображения: ' . getAspectRatio( $width, $height ); // > Соотношение сторон изображения: 1/1 $width = 900; $height = 1600; echo 'Соотношение сторон изображения: ' . getAspectRatio( $width, $height ); // > Соотношение сторон изображения: 9/16
Комментарии