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

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

?>

ارسال نظر

جهت استفاده از کد حتما از تگ pre استفاده نمایید .

contact us