Linux पर BMP फ़ाइलों के एक समूह को JPEG में बदलें


32

किसी ने मुझे बीएमपी फ़ाइलों का एक गुच्छा भेजा और मुझे जेपीईजी में उनकी आवश्यकता थी। मैं उन्हें एक-एक करके GIMP का उपयोग करके परिवर्तित कर सकता था, लेकिन मैं यह सब एक बार में करना चाहता था। मेरे पास उबंटू है।

जवाबों:


46

आप ImageMagick के mogrify टूल का उपयोग कर सकते हैं

mogrify -format jpg * .bmp

1
ध्यान दें कि यह उत्तर विंडोज के लिए भी काम करता है, क्योंकि ImageMagick विंडोज के लिए भी डाउनलोड करने के लिए उपलब्ध है।
ग्नूपी

यह sudo apt install imagemagickउबंटू पर है और आप -quality 100
सेपेन

15

आपको Ubuntu पर ImageMagick स्थापित होने की संभावना है ।
वह कर सकता है ,

convert filename.bmp filename.jpg

अद्यतन करें:

mogrify(द्वारा उत्तर दिया hyperslugऔर द्वारा संदर्भित cjm) भी एक अच्छा विकल्प है।

छवि, ब्लर, क्रॉप, डेसपेकल , डेज़री , आकार, फ़्लिप, ज्वाइन, री-सैंपल और बहुत कुछ का आकार बदलने के लिए मोगरीफाई प्रोग्राम का उपयोग करें ।
यह उपकरण बदलने के लिए उपयुक्त है सिवाय इसके कि मूल छवि फ़ाइल अधिलेखित है
(जब तक कि आप -formatविकल्प के साथ फ़ाइल प्रत्यय को नहीं बदलते) आपके द्वारा अनुरोध किए गए परिवर्तनों के साथ।


1
ImageMagick की mogrify कमांड इसके लिए कन्वर्ट से बेहतर है, क्योंकि इसे वाइल्डकार्ड के साथ आसानी से इस्तेमाल किया जा सकता है। हाइपरलॉग का उत्तर देखें।
cjm

7

मुझे उत्तर देने के लिए थोड़ा सा बदलाव करने दें:

for i in `ls *.bmp`; do convert $i $i.jpg; done

ऊपर काम करता है लेकिन "bmp.jpg" नाम की फाइलें उत्पन्न करता है। आप इस आदेश के साथ .jpg फाइलें प्राप्त कर सकते हैं:

for i in *.bmp; do convert ${i} ${i%bmp}jpg; done

कमांड के man bashविवरण के लिए देखें for${i%bmp}भाग स्ट्रिंग का अर्थ है "$ {मैं}" "bmp" अंत में सबस्ट्रिंग के बिना।

"$ {I}" में स्ट्रिंग को बदलने के लिए अन्य ऑपरेशन हैं। "$ i" "$ {i}" का शॉर्टहैंड है। ls *.bmpSalmonmoose जवाब साधन में भाग "पर अमल ls *.bmpकरें, तो के लिए iहिस्सा प्रदान करती है प्रत्येक स्ट्रिंग के लिए रिक्तियों से अलग i"। *.bmpइसे हासिल किया जाता है क्योंकि यह निर्देशिका में सभी फ़ाइल नामों से मेल खाता है।

इसके साथ एक खामी है for- यदि आपकी निर्देशिका में फ़ाइलों के नाम में रिक्त स्थान हैं, उदाहरण के लिए "शादी की तस्वीर 1.bmp", तो यह iइन कमांड का प्रदर्शन करते हुए, 3 बार var को सौंपा जाएगा :

convert wedding wedding.jpg 
convert picture picture.jpg
convert 1.bmp  1.bmp.jpg

मेरे जवाब में भी मैच "$ {i% bmp}" विफल है।

लेकिन एक समाधान है - आप findइसके बजाय कमांड का उपयोग कर सकते हैं । man findविवरण के लिए देखें। आपको निम्नलिखित जैसा कुछ लिखना चाहिए (कृपया इसे आज़माने से पहले मैन पेज के साथ सिंटैक्स की जाँच करें):

find -name *.bmp -type f -exec convert '{}' '{}'.jpg \;

(मैं नाम भाग के बारे में बहुत निश्चित नहीं हूं, और मुझे इस -execभाग में कुछ संदेह है , man findपहले देखें )

यदि आप सभी छवियों को एक .jpg फ़ाइल में शामिल करना चाहते हैं, तो आप उन्हें दूसरे फ़िल्टर के साथ संक्षिप्त कर सकते हैं, जैसा कि पहले उत्तर में बताया गया है।


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