मैं छवि फ़ाइलों की एक बड़ी संख्या (लगभग 5200) (पीपीएम प्रारूप, आकार में प्रत्येक 5 MB) का आकार बदलने और convert
का उपयोग कर PNG प्रारूप में उन्हें बचाने के लिए करना चाहते हैं।ImageMagick: कैसे कम स्मृति के उपयोग को प्राप्त करने के छवि फ़ाइलों की एक बड़ी संख्या आकार बदलते समय?
लघु संस्करण: स्मृति के
convert
चल रही है 24 जीबी हालांकि मैं वाक्य रचना कि convert
बताता लगातार छवि फ़ाइलों को संसाधित करने के लिए उपयोग करें।
लांग संस्करण:
के बारे में छवि डेटा से अधिक 25 जीबी, मैं समझ मैं एक साथ सभी फ़ाइलों को प्रोसेस नहीं करना चाहिए। मैं और मैं कैसे लगातार छवि फ़ाइलों पर कार्रवाई करने के बारे में ImageMagick प्रलेखन found खोज:
यह प्रत्येक छवि का आकार बदलने के लिए तेजी से और कम संसाधन गहन है यह है पढ़ने:
$ convert '*.jpg[120x120]' thumbnail%03d.png
इसके अलावा , the tutorial states:
उदाहरण के लिए ...
montage '*.tiff' -geometry 100x100+5+5 -frame 4 index.jpg
जो पहले के सारे TIFF फ़ाइलों को पढ़ता है, फिर उन्हें आकार बदलता है। आप बजाय कर सकते हैं ...
montage '*.tiff[100x100]' -geometry 100x100+5+5 -frame 4 index.jpg
इस में प्रत्येक छवि पढ़ा जाएगा, और उन्हें आकार परिवर्तन, अगली छवि पर आगे बढ़ने से पहले। बहुत कम मेमोरी उपयोग में परिणामस्वरूप, और संभवतः डिस्क स्वैपिंग (थ्रैशिंग) को रोकें, जब स्मृति सीमाएं पहुंच जाती हैं।
$ convert '*.ppm[1280x1280]' pngs/%05d.png
डॉक्स के अनुसार, यह एक के बाद प्रत्येक छवि फ़ाइल एक व्यवहार करना चाहिए: पढ़ें, आकार परिवर्तन, लिखने
इसलिए, यह मैं क्या कर रहा हूँ है। मैं इसे 12 असली कोर और 24 जीबी रैम वाली मशीन पर कर रहा हूं। हालांकि, पहले दो मिनट के दौरान, convert
प्रक्रिया का स्मृति उपयोग लगभग 96% तक बढ़ता है। यह थोड़ी देर तक रहता है। सीपीयू उपयोग अधिकतम है। थोड़ा अधिक समय और प्रक्रिया, मर जाता है तो बस कह रही:
किल्ड
इस बिंदु पर, कोई आउटपुट फाइलों उत्पादन किया गया है। मैं उबंटू 10.04 पर हूँ और convert --version
का कहना है:
Version: ImageMagick 6.5.7-8 2012-08-17 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2009 ImageMagick Studio LLC
Features: OpenMP
यह रूपांतरण शुरू करने से पहले सभी डेटा को पढ़ने के लिए convert
की कोशिश करता तरह दिखता है। तो या तो convert
में एक बग है, दस्तावेज़ीकरण के साथ एक मुद्दा या मैंने दस्तावेज़ को ठीक से नहीं पढ़ा।
क्या गलत है? इस बड़ी संख्या में छवि फ़ाइलों का आकार बदलते समय मैं कम स्मृति उपयोग कैसे प्राप्त कर सकता हूं?
बीटीडब्ल्यू: एक त्वरित समाधान केवल खोल का उपयोग कर फाइलों पर लूप होगा और convert
प्रत्येक फ़ाइल के लिए स्वतंत्र रूप से आमंत्रित करेगा। लेकिन मैं समझना चाहता हूं कि शुद्ध छवि मैगिक के साथ इसे कैसे प्राप्त किया जाए।
धन्यवाद!
यदि आप 'ढूंढने की कोशिश करते हैं। -नाम "* .ppm" -exec रूपांतरित करें '{} [1280x1280]' pngs /% 05d.png \; 'क्या यह काम करता है? 'find -exec' सभी फ़ाइलों को सूचीबद्ध करेगा और उनमें से प्रत्येक तर्क में दिए गए आदेश को निष्पादित करेगा। – Flinth
@epingle: सिद्धांत रूप में यह काम करता है (जैसा कि मैंने अपने प्रश्न के अंतिम भाग में कहा था)। ऐसा कुछ भी करना मेरा अस्थायी समाधान है। फिर भी, इसे शुद्ध छवि मैगिक के साथ भी काम करना चाहिए (चाहिए)। (ध्यान दें कि आपका विशेष समाधान काम नहीं करेगा, क्योंकि फ़ाइल काउंटर '% 05d' हमेशा शून्य होगा)। –
ठीक है, मुझे आपके संदेश का अंत नहीं दिखाई देता है या% 05d आपके लिए काउंटर था – Flinth