इमेजमैगिक के साथ छवियों का सबसेट सब्मिट करना, पुनरावृति


1

मेरे पास एक सौ छवियां हैं और मैं उन्हें एक बार में 5 औसत करना चाहता हूं।

पहले 5 के लिए इमेजमैजिक कमांड है:

convert -background transparent %d.jpg[1-5] -average output1.jpg

दूसरे 5 के लिए इमेजमैजिक कमांड है:

convert -background transparent %d.jpg[2-6] -average output2.jpg

तीसरे 5 के लिए इमेजमैजिक कमांड है:

convert -background transparent %d.jpg[3-7] -average output3.jpg

मैं इसे विंडोज में प्रोग्रामेटिक रूप से कैसे कर सकता हूं? दूसरे शब्दों में, क्या मैं एक लूप के साथ ऐसा करने के लिए इमेजमैगिक चलाने के लिए एक बैच फ़ाइल लिख सकता हूं? या कोई बेहतर भाषा / तरीका / विकल्प है?


2
नमस्ते, सुपर उपयोगकर्ता में आपका स्वागत है! चीजें यहां कुछ अलग तरीके से काम करती हैं कि वे उन पारंपरिक मंचों पर कैसे हैं जिनके लिए आपका उपयोग किया जा सकता है। यदि आपकी समस्या हल हो गई है, तो आपको उस शीर्षक को संपादित करने की आवश्यकता नहीं है - बस उस उत्तर पर क्लिक करें जो आपके प्रश्न को हल करता है, और यह स्वतः ही उस उत्तर को स्वीकार कर लेगा और आपके प्रश्न को हल के रूप में चिह्नित करेगा! आप इस बारे में अधिक जान सकते हैं कि किस प्रकार की चीजें यहां काम करती हैं यात्रा पृष्ठ।
nhinkle

जवाबों:


1

निम्नलिखित की तरह बैच फ़ाइल के साथ यह करना आसान होना चाहिए:

@echo off
setlocal enabledelayedexpansion
for /l %%f in (1,1,5) do (
    set /a cnt=%%f+4

    REM If the output looks ok, remove the "echo" from the following line to actually run convert
    echo convert -background transparent %%d.jpg[%%f-!cnt!] -average output%%f.jpg
)
endlocal

यहां "गूंज" के साथ आउटपुट है:

convert -background transparent %d.jpg[1-5] -average output1.jpg
convert -background transparent %d.jpg[2-6] -average output2.jpg
convert -background transparent %d.jpg[3-7] -average output3.jpg
convert -background transparent %d.jpg[4-8] -average output4.jpg
convert -background transparent %d.jpg[5-9] -average output5.jpg

युक्ति: Imagemagick के Convert.exe के लिए पूर्ण पथ निर्दिष्ट करना सुनिश्चित करें, अन्यथा विंडोज का अपना बदलना कमांड (एक FAT वॉल्यूम को NTFS में कनवर्ट करता है) डिफ़ॉल्ट रूप से चलने की संभावना है।


हे करन - अच्छा जवाब, लेकिन क्या आप इस बारे में थोड़ी अतिरिक्त जानकारी जोड़ना चाहेंगे कि वास्तव में बैच फाइल क्या कर रही है? विलंबित विस्तार भ्रमित कर रहा है (यहां तक ​​कि किसी ने इसे पहले इस्तेमाल किया है), और यह कार्यक्रम के तार्किक प्रवाह के बारे में कुछ स्पष्टीकरण देना बहुत अच्छा होगा।
nhinkle

उम्म, मुझे भी यकीन नहीं है कि मुझे किस प्रवाह के बारे में स्पष्टीकरण देना चाहिए! %% f को लूप के लिए 1-5 से मान मिलता है, और cnt को %% f का मिलता है वर्तमान मूल्य + 4 (इसलिए आपको आउटपुट में 1-5, 2-6 आदि मिलते हैं)। विस्तार में देरी के लिए, हू लड़के कि कीड़े की एक पूरी कर सकते हैं। :) मैं किसी को भी बाहर की जाँच करने के लिए दिलचस्पी को प्रोत्साहित करेंगे ss64.com/nt/for_l.html तथा ss64.com/nt/delayedexpansion.html अधिक के लिए (मेरे आश्चर्य के लिए बाद वाला पृष्ठ संयोग से एक है बहुत लूप के समान उदाहरण मैंने ऊपर प्रयोग किया है! "
Karan

यह मूल रूप से मैं क्या देख रहा था - बस एक वर्णन है कि कौन सा लूप करता है।
nhinkle

0

यहाँ कोड है कि मैंने एक साथ cobbled जो हजारों छवियों के लिए Windows बैच फ़ाइल के रूप में काम करता है:

  1. रेम हम 5 छवियों को संयोजित करेंगे
  2. सेट / एक यू = 0
  3. सेट / एक V = 1
  4. सेट / एक डब्ल्यू = 2
  5. सेट / एक एक्स = 3
  6. सेट / ए वाई = 4
  7. रेम हम केवल पहले 15 छवियों को देखेंगे
  8. सेट / एक टर्मिनेटर = 15
  9. : पाश
  10. set / a W =% W% + 1
  11. set / a V =% V% + 1
  12. सेट / एक यू =% यू% + १
  13. सेट / ए एक्स =% एक्स% + १
  14. सेट / ए वाई =% वाई% + १
  15. यदि% Y% ==% टर्मिनेटर% गोटो करीब है
  16. गोटो खुला
  17. :बंद करे
  18. ठहराव
  19. बाहर जाएं
  20. :खुला
  21. कन्वर्ट %% d.jpg [% U% -% Y%]
  22. गोटो लूप

एक का उपयोग कर कुछ अजीब व्यापार है for next लूप जहां किसी को स्थानीय अभिव्यक्ति में देरी करने और धमाके का उपयोग करने के लिए याद रखने की जरूरत है ( ! ) प्रतिशत संकेतों के बजाय चर नाम के आसपास का चरित्र। मैंने सीखा कि स्वतंत्र रूप से इससे पहले कि मैं यहाँ वापस आया और देखा कि आपने मेरे प्रश्न को हल कर दिया है। लूप के साथ एक साधारण गोटो अधिक पारदर्शी है, हालांकि कथन के लिए अधिक सुरुचिपूर्ण है।


1
मैंने करन के समाधान को उभारने की कोशिश की, लेकिन मेरे पास पर्याप्त प्रतिष्ठा नहीं है :(
aquagremlin

1
करण के जवाब को स्वीकार करने से उन्हें जवाब के लिए प्रतिष्ठा अंक मिलेंगे, और हल किए गए आपके प्रश्न को चिह्नित करेंगे। किसी प्रश्न पर उत्तर स्वीकार करने के लिए, आपको अपने लिए भी +2 प्रतिष्ठा मिल सकती है। मैंने आपके उत्तर में प्रारूपण को यहाँ संपादित किया है; इसकी जाँच पड़ताल करो स्वरूपण संदर्भ अधिक जानकारी के लिए।
nhinkle
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.