نحوه محاسبه 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] ?>
ارسال نظر