2016-11-18 112 views
0

我有2圖像,圖片1圖片2基於另一圖像尺寸縮放圖像並保留其縱橫比的算法

圖片1的尺寸爲512(寬)x 515(高)。

然後圖片2大小爲256(寬)x 256(高)。

圖像2是將被用作一個水印和將被放置在的圖像1頂部。

我要圖片2尺寸取決於圖片1尺寸。 圖片2可以調整大小或取決於大小圖片1

新大小的圖像2(寬度&高度)應的圖像1 %的大小和-同時保持其寬高比。

什麼是算法來尋找新的大小的圖像(寬度&高度)?

現在,我用(20%/100) * 512來調整它,但這並不保留圖片2縱橫比。

+0

按面積劃分20%,或者按照其中一個座標軸,另一個座標軸重新調整大小以保持縱橫比? – samgak

+0

@samgak在寬度和高度上小於圖像1的20%。我可以做這個部分。現在的問題是我想在縮放之後長度相同的長寬比。 – Programmer

回答

2

如果兩幅圖像沒有相同的寬高比,那麼在數學上不可能將寬度和高度都縮放20%並保持寬高比。

因此,選擇一個軸,您將使用它來縮放,並將另一個縮放到保持縱橫比的大小。

例如,使用寬度:

new_image1_width = 512 * (20/100) = 102.4 

然後計算新的高度以保持高寬比:

original_aspect_ratio = image2_width/image2_height = 256/256 = 1 
new_image1_height = 102.4/original_aspect_ratio = 102.4 

或做它的其他方式(此時由比乘以):

new_image1_height = 515 * (20/100) = 103 
original_aspect_ratio = image2_width/image2_height = 256/256 = 1 
new_image1_width = 103 * original_aspect_ratio = 103 

如果您必須處理任意圖像大小和任意比例因子,則需要兩個在兩種方式之間切換取決於你想要的規則是什麼。例如。您可以隨時使用兩者中較小的一個,或者使用比例調整後的高度,除非這給了您比圖像1高度大的高度,並且在這種情況下使用第二種方式,反之亦然。

+0

對不起,我沒有注意到圖像尺寸是512 * 515而不是512 * 512。已編輯答案 – samgak

+0

我正在嘗試此操作,並會在幾分鐘內讓您知道 – Programmer

+0

只是爲了讓您知道第二張圖像是放置在第一張圖像前面的水印圖像。它只需要小一些的百分比,並將放置在第一張圖像的右側。事實是,沒有人知道兩個圖像的大小。你在這個問題中看到的數字僅僅是一個例子。自動重新調整的東西,並保持其比例是我正在努力。只是想確保重新調整大小的圖像與原始圖像沒有多大區別。 – Programmer