कमांड लाइन में छवियों को कैसे मर्ज किया जाए? [बन्द है]


111

मैं सीएसएस स्प्राइट तकनीक को एक ही छवि के रूप में कुछ थंबनेल लोड करने की कोशिश करना चाहूंगा । इसलिए मुझे सर्वर में ऑफ़लाइन एक ही फ़ाइल में कुछ थंबनेल "मर्ज" करने की आवश्यकता है।

मान लीजिए कि मेरे पास एक ही आकार के 10 थंबनेल हैं। आप कैसे सुझाएंगे कि मैं लिनक्स कमांड लाइन से उन्हें "मर्ज" करूं?

जवाबों:


198

आप ImageMagic भी आज़मा सकते हैं जो CSS स्प्राइट बनाने के लिए बहुत अच्छा है। इसके बारे में कुछ ट्यूटोरियल यहाँ

उदाहरण (ऊर्ध्वाधर स्प्राइट):

convert image1.png image2.png image3.png -append result/result-sprite.png

उदाहरण (क्षैतिज स्प्राइट):

convert image1.png image2.png image3.png +append result/result-sprite.png

45
नोट: यह एक ऊर्ध्वाधर स्प्राइट उत्पन्न करेगा, +appendइसके बजाय क्षैतिज स्प्राइट उपयोग के लिए -append
चांगो

13
यदि आप आलसी हैं,convert -append *.png out.png
चिल्लारनंद

यह काम करता है, लेकिन बड़ी फ़ाइलों के लिए बहुत समय लगता है। कंपोज़ करने का तरीका क्या है?
व्लाद त्सेलेवले

@VladTsepelev PNGs के बहुत से समाप्‍त करने का मतलब है ऑपरेशन के लिए उन्‍हें डिकोड करना (पिक्‍समैप को) और अंत में फिर से एनकोड करना। यदि आप एक मौजूदा स्प्राइट को बहुत बार विस्तारित करना चाहते हैं, तो शायद डिकोड किए गए पिक्समैप संस्करण को रखने से चीजों को गति मिल सकती है। इस ऑपरेशन को प्राप्त करने के लिए PNM टूल्स का उपयोग करने के लिए मेरा उत्तर देखें। लेकिन निश्चित रूप से पिक्समैप संस्करण पीएनजी से बड़े हैं, इसलिए अधिक भंडारण का उपयोग करने की उम्मीद है।
अल्फ जुले

1
यह कहता है: saysconvert-im6.q16: चौड़ाई या ऊंचाई सीमा से अधिक है `ktwo20112181717-c102_lpd-targ.fits_autoaper.png '@ error / cache.c / OpenCixelCache / 3839.´
zabop

28

आप GraphicsMagick का उपयोग कर सकते हैं , ImageMagick का हल्का और तेज़ कांटा:

gm convert image1.png image2.png -append combined.png

12 छवियों को मर्ज करने का एक सरल समय तुलना:

time convert image{1..12}.jpg -append test.jpg

real    0m3.178s
user    0m3.850s
sys     0m0.376s

time gm convert image{1..12}.jpg -append test.jpg

real    0m1.912s
user    0m2.198s
sys     0m0.766s

GraphicsMagick ImageMagick से लगभग दोगुना तेज़ है।


7

pnmcatNetpbm- पैकेज का उपयोग करें ।

आपको संभवतः अपनी इनपुट फ़ाइलों को इसे उपयोग करने के लिए और फ्रिंज में बदलना होगा:

pnmcat -lr <(pngtopnm 1.png) <(pngtopnm 2.png) | pnmtopng > all.png

4

यदि आप चित्रों को बाएँ से दाएँ मर्ज करना चाहते हैं, तो निम्न कमांड का उपयोग करें:

convert image{1..0}.png +append result/result-sprite.png

के +appendबजाय ध्यान दें -append

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