نحوه محاسبه aspect ratio با PHP

aspect ratio با PHP – هر تصویری نسبت طول و ارتفاع دارد یعنی به هر نسبتی که طول دارد به همان نسبت یا کمتر یا بیشتر ارتفاع دارد مثلا نسبت 16:9 که 16 طول و 9 ارتفاع و اگر 16 / 9 باشد عدد 1.777 بدست می آید حال اگر طول 1920 و ارتفاع 1080 داشته باشیم . و مجددا تقسیم کنیم همان 1.777 بدست می آید که نشان دهنده نسبت 16:9 هست .
حال اگر طول 1280 را داشته باشیم و بخواهیم ارتفاع را بدست بیاوریم یا اگر ارتفاع را داشته باشیم بخواهیم طول را بدست آوریم باید چه کنیم می توانیم از تابع زیر استفاده کنیم .
سورس aspect ratio
<?php
function getResizeByAspectRatio(array $original_dimension , int $new_width){
if(!$new_width) return false;
$metaData = getAspectRatio($original_dimension[0] , $original_dimension[1]);
if(!$metaData) return false;
if($metaData['max'] === 0){
$new_height = $new_width / $metaData['aspect_ratio'];
}else if($metaData['max'] === 1){
$new_height = $new_width * $metaData['aspect_ratio'];
}
$new_height = intval($new_height);
return [$new_width , $new_height];
}
function getAspectRatio($width , $height){
if($width === 0 || $height === 0) return false;
$max = 0;
if($width < $height) $max = 1;
$aspectRatio = $max === 0 ? $width / $height : $height / $width;
return [
'aspect_ratio' => $aspectRatio,
'max' => $max
];
}
// @param [width,height] , new_width
// @return [new_width , new_height]
var_dump(getResizeByAspectRatio([1920,1080] , 1280));
// [1280 , 720]
?>
ارسال نظر