2012-09-14 25 views
17

我正在關注這個示例http://cubiq.org/create-fixed-size-thumbnails-with-imagemagick,這正是我想要對圖像做的事情,除了有背景剩餘物(即白色邊框)之外。有沒有辦法做到這一點,並可能裁剪白色背景?有沒有另一種方法來做到這一點?重新調整大小需要成比例,所以我不只是想設置寬度重新調整限制或高度限制,而是按比例重新調整圖像的大小。ImageMagick:如何根據沒有背景的mogrify按比例調整大小

回答

25

鏈接到使用該命令的例子:

mogrify    \ 
    -resize 80x80  \ 
    -background white \ 
    -gravity center \ 
    -extent 80x80  \ 
    -format jpg  \ 
    -quality 75  \ 
    -path thumbs  \ 
    *.jpg 

首先,mogrify是有點危險。它內嵌操作原稿,並覆蓋原稿。如果出現問題,你已經丟失了原稿,並且卡住了錯誤的結果。在你的情況-path thumbs然而緩解這種危險,因爲確保結果將被寫入到子目錄大拇指

另一個ImageMagick的命令,convert,可以讓您的原件,做同樣的操作爲mogrify

convert    \ 
    input.jpg  \ 
    -resize 80x80  \ 
    -background white \ 
    -gravity center \ 
    -extent 80x80  \ 
    -quality 75  \ 
    thumbs/output.jpg 

如果想相同的結果,但只是沒有白色帆布擴展(最初加入使結果方形80x80圖片),見好就收走-extent 80x80參數(-background whitegravity center一再多餘的太):

convert    \ 
    input.jpg  \ 
    -resize 80x80  \ 
    -quality 75  \ 
    thumbs/output.jpg 

mogrify    \ 
    -resize 80x80  \ 
    -format jpg  \ 
    -quality 75  \ 
    -path thumbs  \ 
    *.jpg 
+0

謝謝,Kurt,我會解決mogrify的問題。我不是很確定它和轉換之間有什麼區別,但我確實設置了-path以防萬一。我當然不想覆蓋主圖像文件。 – cj5

6

我知道這是一個古老的線程,但使用-write標誌和-set標誌,一個可以寫入文件在同一目錄而不覆蓋原始文件:

mogrify -resize 80x80 \ 
-set filename:name "%t_small.%e" \ 
-write "%[filename:name]" \ 
*.jpg 

截至http://imagemagick.org/script/escape.php指出,%t是沒有延伸和%E的文件名是擴展名。所以image.jpg的輸出將是一個縮略圖image_small.jpg。

6

這是我每次將批處理大小調整爲1920x並保持長寬比時所使用的命令。

mogrify -path。 - resize 1920x1920 -format「_resized.jpg」-quality 70 * .jpg

+1

實際上' - resize 1920x1920'保持縱橫比,導致'max(width,height)'等於1920。 –

相關問題