2010-02-21 72 views
0

我想使用一個參數將圖片大小調整爲新的大小:寬度。使用ImageMagick檢測圖片方向

如果圖片是水平的,則新尺寸將爲:width = Width,height =與寬度成正比。

如果圖片是垂直的,新的尺寸將會是:height = Width,width =與高度成正比。

任何想法如何實現?

我使用ImageMagick和MagickNet包裝。

+0

問題標題與主體有些不一致。這不是真正的檢測方向,而是更多的調整大小的問題。是啊? – 2010-02-21 04:02:04

+0

o.k.w:我需要他們兩個。我想知道它的方向後調整圖像大小。 – 2010-02-21 04:08:08

+0

我明白了。我已經更新了我的答案,請看一下。 – 2010-02-21 04:42:37

回答

2

http://www.imagemagick.org/Usage/resize/

convert org.jpg -resize widthxwidth final.jpg 

eg widthxwidth可以是256x256

寬高比將保持不變,調整大小將在256 X 256像素的邊界內完成。

從上面的頁面引用:

調整大小將圖像融入 請求的大小。它不填充,請求框尺寸爲 。

+0

@ o.k.w:正是我正在尋找的。我要用MagickNet來測試它。 – 2010-02-21 04:48:43

+0

你有什麼想法如何在.net中實現它? – 2010-02-21 05:02:57

+0

@週日,我會建議你在ImageMagick.NET上提出一個新問題:) – 2010-02-21 10:13:14

1

我不確定你在這裏的意思。你說你只是想定義寬度,但在「垂直」情況下,你將高度設置爲寬度?無論如何,如果你希望只使用寬度來調整一些東西,用這個僞代碼:如果你想調整時間最長的尺寸給定值

ratio = width/height 
newWidth = <the new width> 
newHeight = newWidth/ratio 

,試試這個:

ratio = width/height 

if ratio > 1 // wider than it is tall 
    newWidth = <theValue> 
    newHeight = newWidth/ratio 

else   // taller than it is wide 
    newHeight = <theValue> 
    newWidth = newHeight * ratio 
+0

我假設'寬度'是邊界/最長值,所以這是你的第二個解決方案:) – 2010-02-21 04:00:27

+0

我的意思是第二個。但是我沒有'width'和'height'。我有圖片路徑和目標最長尺寸參數。 – 2010-02-21 04:10:35