2012-09-14 17 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 

तो ही परिणाम चाहते हैं, लेकिन बस नहीं सफेद कैनवास एक्सटेंशन, बस दूर छोड़ -extent 80x80 पैरामीटर (-background white और gravity center एक (मूल रूप से परिणाम एक वर्ग वह 80x80 की छवि बनाने के लिए जोड़ा) ज़रूरत से ज़्यादा फिर भी):

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

या

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

धन्यवाद, कर्ट, मैं मोग्रिफ़ी समस्या को संबोधित करूंगा। मुझे पूरा यकीन नहीं था कि इसके बीच क्या अंतर था और परिवर्तित हो गया था, लेकिन मैंने वास्तव में मामले में केवल पैथ सेट किया था। मैं निश्चित रूप से मास्टर छवि फ़ाइलों को ओवरराइट नहीं करना चाहता था। – cj5

6

मैं जानता हूँ कि यह एक पुरानी धागा है, लेकिन सेट ध्वज के साथ लिखें ध्वज का उपयोग करके, एक ही निर्देशिका में फ़ाइलों को लिख सकते हैं मूल फाइलों को अधिलेखित करने के बिना:

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

http://imagemagick.org/script/escape.php में बताया गया है,% टी के बिना विस्तार और% ई फ़ाइल नाम है विस्तार है। तो image.jpg का आउटपुट एक थंबनेल image_small.jpg होगा।

6

यह वह आदेश है जिसका उपयोग मैं हर बार 1 9 20x में आकार बदलकर बैच करना चाहता हूं और पहलू अनुपात रखता हूं।

mogrify -path। -resize 1920x1920 -format "_resized.jpg" - गुणवत्ता 70 * .jpg

+1

असल में '1920x1920 का वर्णन करें' पहलू अनुपात रखता है, जिसके परिणामस्वरूप 'अधिकतम (चौड़ाई, ऊंचाई)' 1920 के बराबर होता है। –

संबंधित मुद्दे