ImageMagick (कन्वर्ट) के साथ स्क्वायर थंबनेल?


32

ImageMagick का उपयोग करके स्क्वायर / क्रॉप्ड थंबनेल कैसे बनाएं? नीचे की तरह फसल।

फसल

जवाबों:


19

इसके तहत आधिकारिक ImageMagick प्रलेखन में समझाया गया है, "फिट करने के लिए थंबनेल काटें" :

एक विकल्प, विशिष्ट छवि के आकार को फिट करने के लिए छवि को पैड करने के बजाय है, इसके बजाय छवि के उन हिस्सों को काट देना है जो अंतिम आकार में फिट नहीं होते हैं।

बेशक इसका मतलब यह है कि आप वास्तव में मूल छवि के कुछ हिस्सों को खो देते हैं, विशेष रूप से छवि के किनारों को, लेकिन परिणाम छवि के केंद्र भाग का एक बढ़ा हुआ थंबनेल है। यह आमतौर पर (लेकिन हमेशा नहीं) छवि का मुख्य विषय है, इसलिए यह थंबनेल निर्माण का एक व्यावहारिक तरीका है।

IM v6.3.8-3 के रूप में विशेष आकार विकल्प ध्वज '^' को आसान बनाने के लिए जोड़ा गया था। हम इस ध्वज का उपयोग करना चाहते हैं, फिर छवि के उन हिस्सों को काट लें जो वांछित आकार को ओवरफ्लो करते हैं।

और एक उदाहरण कमांड के संदर्भ में:

convert -define jpeg:size=200x200 hatching_orig.jpg  -thumbnail 100x100^ \
          -gravity center -extent 100x100  cut_to_fit.gif

7
संभवतः ... किसी प्रकार का वर्णन?
हैलो71

मुझे इग्नासियो के बिंदु रिक्त उत्तर पसंद हैं :-)
सिरो सेंटिल्ली 改造

55

इग्नासियो सही दस्तावेज से जुड़ा हुआ है, हालांकि मैं इसे सुविधा के लिए इनलाइन पर चिपकाऊंगा:

convert -define jpeg:size=200x200 original.jpeg  -thumbnail 100x100^ -gravity center -extent 100x100  thumbnail.jpeg

इसी तरह, GraphicsMagick के लिए निम्नलिखित है:

gm convert -size 200x200 original.jpeg -thumbnail 100x100^ -gravity center -extent 100x100 +profile "*" thumbnail.jpeg

स्पष्टीकरण:

  • -size 200x200 jpeg डिकोडर को बताता है कि हमें केवल इस रिज़ॉल्यूशन की आवश्यकता है ताकि यह मेमोरी को बचा सके और सोर्स इमेज को तेजी से पढ़ सके
  • -thumbnail 100x100^ तेजी से आकार कम से कम 100 पक्ष बना
  • - gravity center अगला ऑपरेशन केंद्र
  • -extent 100x100 छवि को 100x100 कैनवास पर लागू करें
  • +profile "*" किसी भी मेटेनोफ़ को jpeg में न सहेजें (परिणामी छवि को छोटा बनाते हुए)

3
जब मैंने इसे कमांड लाइन में इस्तेमाल किया (ग्राफिक्स मैजिक वन) मुझे केंद्र पर चित्र मिला, दो साइडर सफेद से भरे हुए हैं। प्रश्न में वर्णित एक नहीं। क्या मुझसे कुछ ग़लत हो रहा है?
उमुट बेनजर

2
यदि आप खिड़कियों का उपयोग कर रहे हैं, तो आपको बचने के लिए ^ वर्ण को दोगुना करना चाहिए। जैसे: -थम्बल १००x१०० ^ ^
जॉर्ज फिलीपकोस

3
100x100 का आकार क्यों नहीं?
हैलो वर्ल्ड

@ हेलोवर्ल्ड: "इमेजमाजिक ज्योमेट्री" पढ़ें। यह गूगल, यह आसान मिल जाएगा।
साहूभित्स

11

यह करने के लिए एक सरल तरीका है:

निम्न आदेश 100 पिक्सेल के छोटे पक्ष का आकार और 100x100 वर्ग में काटता है। आप -stripफ़ाइल का आकार कम करने के लिए एक कमांड जोड़ सकते हैं ।

convert original.jpg -resize "100^>" -gravity center \ 
                     -crop 100x100+0+0 -strip thumbnail.jpg

दूसरों के विपरीत, यह स्मृति को बचाने की कोशिश नहीं कर रहा है। इसके बजाय, यह वही करता है जो आप चाहते हैं, और अधिक नहीं। इसके अलावा, यह छवियों को अपस्केल नहीं करेगा।


स्थापित उत्तरों के साथ एक प्रश्न के लिए देर से उत्तर जोड़ने पर यह पर्याप्त स्पष्टीकरण प्रदान करने में सहायक होता है कि आपका उत्तर अन्य उत्तरों की तुलना में कुछ अनूठा और नया क्यों प्रदान करता है।
जेसन एलर

2
धन्यवाद, मुझे नहीं पता कि अन्य लोगों ने स्मृति को बचाने की कोशिश करने के लिए उनके जवाब को क्यों गलत बताया जब ओपी इस बारे में कुछ भी नहीं बताता।
उलझन में

2

मैं सटीक आकार के थंबनेल बनाने के लिए ग्राफिक्समैगिक का उपयोग कर रहा हूं, लेकिन मैं ओवरहैंग को क्रॉप करने के बजाय एक चेकबोर्ड के साथ छवि को पैडिंग कर रहा हूं।

gm convert -limit Threads 1 -size 320x180 pattern:checkerboard -background transparent -gravity center -resize 320x180 -extent 320x180 original.jpg -flatten -resize 112x65! -interlace Line 1 thumb_112x65.jpg

विकल्प समझाया।

gm convert

// Single threaded seems faster on smaller files
-limit Threads 1 

// Generate a checkerboard of size 320x180.
// Sets the relative size of the checkerboard squares,
// also sets the desired aspect ratio. In my case (16:9)
-size 320x180 pattern:checkerboard 

// Resize the input image and center it on a transparent layer.
-background transparent -gravity center -resize 320x180 -extent 320x180 orig.jpg

// Merge the layers
-flatten 

// Resize the output to the desired
// The ! causes the aspect ratio to be ignored, fixing any rounding errors.
// (Specify a size with the same aspect ratio as the checkerboard.)
-resize 112x65! 

// Use Progressive JPEG Encoding
-interlace Line 

// Output Image
thumb_112x65.jpg

1

मुझे लगता है कि आप कुछ इस तरह की तलाश कर रहे हैं:

convert -crop 100x100+50+50 input_image.jpg output_image.jpg 

जहां 100x100है आकार अंतिम आयत और की ऑफसेट50x50


वह फसल छवि, लेकिन थंबनेल नहीं बनाता है।
मारिओश

1
@marioosh: मुझे समझ नहीं आया, आप उपयोग कर सकते हैं convert -thumbnail 100x100+50+50 input_image.jpg output_image.jpg, अधिक जानकारी के लिए एक उदाहरण के लिए Igancio Vazquez प्रतिक्रिया की जाँच करें या दस्तावेज़ की
pconcepcion

1

यह एक वर्ग के लिए फसल और फिर 150x150 का आकार

convert 824-full.jpg -set option:size '%[fx:min(w,h)]x%[fx:min(w,h)]' xc:none +swap -gravity center -composite -resize 150x150  temp.jpg

अधिक विकल्प यहां उपलब्ध हैं: http://www.imagemagick.org/Usage/thumbnails/#square

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.