Взимане на пропорциите на изображение

Lasevg

Registered
Как мога да разбера дали изображение е 4:3 , 5:4 , 16:9 или нещо друго , след като му имам ширината и височината .
Мерси предварително :)
 
Не мисля че има такава функция във php, можеш да вземеш широчината и восочината на снимка но това което искаш май е невъзможно.
 
Е мисля че може примерно да се направи функция която да дели широчините после и височините ... :oops:
 
E , ако снимката е 640x480 , 800x600 .. за всички резолюции ли трябва да си пиша отношенията, не става ли някак си чрез делене ( ако е кратно на 2 или 3.. ) :lol:
 
Ами аз мисля че е възможно ...
Примерно първо се проверява числата дали са кратни на 2,3,5,7
После се разделят на най малкото кратно и накрая се изписва съотношение като 16:9
 
Код:
list($width, $height) = getimagesize($img);
$ratio = ($width >= $height) ? ($width / $height) : ($height / $width);
$ratio = number_format($ratio, 2, ".");
switch($ratio) {
default:
$ar = $ratio.":1";
case "1.25":
$ar = "5:4";
break;
case "1.33":
$ar = "4:3";
break;
case "1.5":
$ar = "3:2";
break;
case "1.6":
$ar = "16:10";
break;
case "1.77":
$ar = "16:9";
break;
}
Нещо такова?
 
Благодарен съм ти много , показва точното отношение , само че отгоре и показва грешка

Warning: Wrong parameter count for number_format() in C:\xampp\htdocs\includes\core_files\view_img.php


$ratio = number_format($ratio, 2, "."); е редът

на този ред , иначе показва отношението и всичко е точно ! мерси :)
 
Код:
function GCD($a, $b) {
while ($b != 0) {
$remainder = $a % $b;
$a = $b;
$b = $remainder;
}
return abs ($a);
}

$a = 2048; // Shirochina na izobrajenieto(width)
$b = 1152; // Visochina na izobrajenieto(height)  
$gcd = GCD($a, $b);  
$a = $a/$gcd;  
$b = $b/$gcd;  
$ratio = $a . ":" . $b;  

//Izvejdame...
echo $ratio;
//Krai na izvejdaneto
 
Този код работи перфектно , ще си го наглася сам с БД и getimagesize() , мерси много за помощта ...


EDIT : Защо не направите урок за взимане на пропорции от изображение , понякога е наистина важно
 
$ratio = number_format($ratio, 2, ".", " ");
Явно ако вкарах 3ти параметър и четвъртия става задължителен :idea:
Но по-добре ползвай начина на @_PHP_ с най-големия общ делител
 

Back
Горе