我不敢相信我找不到這個公式。我正在使用名爲SLIR的PHP腳本來調整圖像大小。該腳本要求指定剪裁的寬高比。我希望根據用戶輸入這些值的表單中指定的圖像的寬度和高度來獲得寬高比。例如,如果用戶輸入1024x768圖像,則會得到高寬比爲4:3。對於我的生活,我無法找到PHP或Javascript中的公式示例,我可以根據知道w,h並將長寬比插入變量來獲取寬高比值。從圖像的寬度和高度獲得寬高比(PHP或JS)
4
A
回答
2
有沒有必要做任何類型的的計算。
僅僅因爲它說縱橫比並不意味着它必須是有限的一組commonly used ratios之一。它可以是任何由冒號分隔的數字對。
例如,如果你希望你的形象是完全150像素寬100個像素高,你可以這樣做:
<img src="/slir/w150-h100-c150:100/path/to/image.jpg" alt="Don't forget your alt text" />
或者,更簡潔:
<img src="/slir/w150-h100-c15:10/path/to/image.jpg" alt="Don't forget your alt text" />
注意,他們並沒有刻意去減少THA甚至進一步到c3:2
。
因此,只需使用由用戶輸入的值:1024:768
。
如果您想簡明扼要,請計算寬度和高度的greatest common divisor,並將其除以二者。這會將您的1024:768
降低至4:3
。
9
如果你能得到之一:高度,寬度,則可以計算出丟失的寬度高度:
原來寬*新的高度/原高度=新寬度;
原始高度*新寬度/原始寬度=新高度;
或者,如果你只想要一個比:
原始的寬/初始高度=比
6
得到縱橫比只是簡化的寬度和高度等,例如一小部分:
1024 4
---- = ---
768 3
的php代碼:
function gcd($a, $b)
{
if ($a == 0 || $b == 0)
return abs(max(abs($a), abs($b)));
$r = $a % $b;
return ($r != 0) ?
gcd($b, $r) :
abs($b);
}
$gcd=gcd(1024,768);
echo "Aspect ratio = ". (1024/$gcd) . ":" . (768/$gcd);
2
下面是最大公約數整數比一個更簡單的選擇:
function ratio($x, $y){
$gcd = gmp_strval(gmp_gcd($x, $y));
return ($x/$gcd).':'.($y/$gcd);
}
請求echo ratio(25,5);
回報5:1
。
如果您的服務器未使用GMP功能編譯...
function gcd($a, $b){
return ($a % $b) ? gcd($b,$a % $b) : $b;
}
function ratio($x, $y){
$gcd = gcd($x, $y);
return ($x/$gcd).':'.($y/$gcd);
}
相關問題
- 1. 控制寬度和高度爲身體的圖像寬高比
- 2. 獲取圖像的寬度和高度
- 3. 獲取圖像的寬度和高度
- 4. 獲取圖像的寬度和高度
- 5. 如何獲得高度和寬度或用戶本地圖像
- 6. JS - 從base64代碼獲取圖像寬度和高度
- 7. 獲得絕對的高度和寬度
- 8. 獲取圖像寬度高度的JavaScript
- 9. 獲取沒有設置高度/寬度的圖像的高度/寬度
- 10. setRotationX/setRotationY寬度/高度增加後。如何獲得新的寬度和高度?
- 11. 檢查圖像的寬度和高度
- 12. divs中圖像的寬度和高度
- 13. Jquery中的寬度和高度圖像
- 14. 動態的圖像寬度和高度
- 15. 更改圖像的寬度和高度
- 16. 設置圖像的寬度和高度
- 17. CKEditor ACF圖像的寬度和高度
- 18. 更改圖像的高度和寬度
- 19. 獲取圖片尺寸(高度和寬度)Js或jquery
- 20. 獲取高度和寬度
- 21. Android |獲取屏幕高度,寬度和屏幕寬度,高度
- 22. PIXI獲取圖像寬度,高度
- 23. AS3如何獲得外部圖像的寬度和高度
- 24. 如何獲得動態添加圖像的寬度和高度?
- 25. 如何獲得圖像的實際寬度和高度
- 26. android如何獲得圖像blob的寬度和高度?
- 27. 如何獲得PB中圖像的寬度和高度
- 28. 如何獲得寬度和高度的圖像
- 29. IE8不保留寬高比時僅寬度或高度改變
- 30. CSS:100%寬度或高度,同時保持寬高比?
不知道我是否理解正確,但也許您正在尋找1024/768(寬度/高度)? – Fabrizio