Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Jpg-Datein mit FOR-Schleife zusammenfügen (concatenate)

Frage Entwicklung Batch & Shell

Mitglied: majcho

majcho (Level 1) - Jetzt verbinden

23.12.2011, aktualisiert 23:04 Uhr, 5502 Aufrufe, 11 Kommentare

Ich möchte zwei .jpg-Dateien zu einer Datei zusammenfügen. Dabei soll die Datei *a.jpg mit *b.jpg in *.jpg mit ImageMagic's Montage zusammengefügt werden. Weilter als mit diesem (fehlerhaften) Script komme ich nicht.

01.
FOR /F "delims=" %%i in ('dir /a-d /b /s "*a.jpg"') & "delims=" %%g in ('dir /a-d /b /s "*b.jpg"') do ( 
02.
"C:\Program Files (x86)\ImageMagick\montage" -geometry +4+4 %%i %%g > %%~ni.tmp )) 
03.
del *.jpg 
04.
ren *.tmp *.jpg
Mitglied: pieh-ejdsch
23.12.2011 um 19:14 Uhr
moin majcho,
hier wird es wie auch sonstwo gehalten - Wir begrüßen uns erstmal

hat es eine bestimmte Bewandtnis, dass Du wegen dem zusammenfügen von nur zwei Dateien eine (wenn auch nicht Funktionierende) Forschleife verwendest?

Gruß Phil
Bitte warten ..
Mitglied: majcho
23.12.2011 um 19:31 Uhr
salve pieh-ejdsch,

gibt es denn eine bessere Möglichkeit .jpg-Dateien zusammenzufügen? Mir fällt in dem Fall die FOR-Schleife als einfachste Möglichkeit ein. Auch in deinem Tutorial "Wie Arbeite ich mit Batch UmgebungsVariablen? Erstellung Umgang Erweiterungen Veränderungen " habe ich zu meinem Problem keine passende Lösung gefunden. Ich könnte zwar die "UmgebungsVariablen mit Wegschnitt" von a und b arbeiten. Was ich jedoch für umständlich halte.

Ich möchte lediglich die Dateien 1050a.jpg 1050b.jpg zu 1050.jpg etc. zusammenfügen.
Bitte warten ..
Mitglied: rubberman
23.12.2011 um 20:31 Uhr
Hallo majcho,

sinvollerweise schaut man sich mal die Syntax eines Tools an, bevor man es verwendet. Hättest du das getan, wäre auch klar, dass es kein ">" in der Kommandozeile gibt.

Ohne dieses Tool downloaden zu wollen, würde ich mal was in der Art probieren:
"C:\Program Files (x86)\ImageMagick\montage" -geometry +4+4 "1050a.jpg" "1050b.jpg" "1050.jpg"
Sollte das funktionieren, kann man sich über die Verwendung von Schleifen unterhalten...

Grüße
rubberman
Bitte warten ..
Mitglied: majcho
23.12.2011 um 20:39 Uhr
Hallo rubberman,

1050a.jpg + 1050b.jpg zu 1050.jpg war lediglich ein Beispiel. Es sollen hunderte von diesen Dateien zusammengefügt werden. Deshalb die FOR-Schleife.
Bitte warten ..
Mitglied: rubberman
23.12.2011 um 20:53 Uhr
Hallo majcho,

ich dachte ich hätte mich klar ausgedrückt: Erst testen, ob es mit 2 Dateien klappt, dann kann man über Schleifen nachdenken.
Weiterhin wäre es interessant zu wissen, ob wahllos Dateien zusammengefügt werden sollen, oder ob es eine Regel gibt, welche Dateien zusammen gehören.

Grüße
rubberman
Bitte warten ..
Mitglied: majcho
23.12.2011 um 21:07 Uhr
Hallo rubbrman,

ja ich gebe zu mit der Umleitung ">" habe ich einen Fehler gemacht. Auch die Recherche im Tool gab keine Hinweis darauf, wie ich Dateien Massenweise zusammenfüge. Deshalb kam ich auf die Idee eine Pipe in der FOR-Schleife "|" oder das "&" zu verwenden. Als Fehlerrückmeldung habe ich ""|" kann syntaktisch an dieser Stelle nicht verarbeitet werden" erhalten. Habe es auch mit dem Wegschneiden des a's und b's probiert. Kam aber da auch nicht viel weiter. Dann die Recherche im Forum mit den Pipes kam ich auf keinen Treffer. Deshalb die Frage an euch Spezialisten.
Bitte warten ..
Mitglied: bastla
23.12.2011 um 21:26 Uhr
Hallo majcho!

Es fehlt weiterhin eine Antwort auf die Frage, welche Dateien denn nun zusammengefügt werden sollen - soferne es tatsächlich immer Dateien, deren Name aus einer (gleichen) Nummer plus einem "a" bzw "b" besteht, sein sollen, dürfte ja
for /f "delims=" %%i in ('dir /a-d /b /s "*a.jpg"') do for /f "delims=a" %%n in ("%%~ni") do "C:\Program Files (x86)\ImageMagick\montage" -geometry +4+4 "%%~i" "%%~dpi%%nb.jpg" "%%~dpi%%n.jpg"
genügen (ungetestet) ...

Grüße
bastla

[Edit] Hallo rubberman!
Das Löschen der Einzeldateien sollte sich - wenn es nicht vom Erfolg des Zusammenfügens (per "&&") abhängig gemacht wird - auch bequem per "del /s /q *a.jpg" und "del /s /q *b.jpg" im Nachhinein erledigen lassen ...
[/Edit]
Bitte warten ..
Mitglied: rubberman
23.12.2011 um 21:31 Uhr
Hallo majcho,

die Fragen hast du trotzdem nicht beantwortet. Ab und zu solltest du mal die Posts lesen bevor du antwortest.

Schuss ins Blaue (also ungetestet!):
01.
@echo off &setlocal 
02.
for %%i in (*a.jpg) do ( 
03.
  set "name=%%~ni" 
04.
  setlocal enableDelayedExpansion 
05.
  set "name=!name:~,-1!" 
06.
  if exist "!name!b.jpg" ( 
07.
    ECHO "C:\Program Files (x86)\ImageMagick\montage" -geometry +4+4 "!name!a.jpg" "!name!b.jpg" "!name!.jpg" 
08.
    ECHO del "!name!a.jpg" 
09.
    ECHO del "!name!b.jpg"     
10.
11.
  endlocal 
12.
13.
pause
Wenn du denkst es könnte so funktionieren, entferne die ECHOs und teste an ein paar Beispieldateien.

Grüße
rubberman

EDIT: Hallo bastla
Bitte warten ..
Mitglied: rubberman
23.12.2011 um 22:11 Uhr
Hallo bastla!
Zitat von bastla:
... vom Erfolg des Zusammenfügens (per "&&") abhängig gemacht wird ...

Das wäre natürlich sinnvoll. Zu dem Zweck müsste man wissen, ob das Tool einen Errorlevel setzt ... hmmm.

Grüße
rubberman
Bitte warten ..
Mitglied: msr972
23.12.2011 um 22:22 Uhr
Moin,

ganz andere blöde Frage:
Wieso montage.exe? Ich sage mal eher Stichwort convert.exe

Und wenn man http://www.imagemagick.org/Usage/layers/ liest, findet man ganz schnell die richtigen Befehle..
Oder die Übersicht: http://www.imagemagick.org/Usage/

Gruß
Bitte warten ..
Mitglied: majcho
23.12.2011 um 22:54 Uhr
Montage ist der Befehl zum Zusammenfügen von Bildern. Auch "concatenate" genannt.
http://www.imagemagick.org/Usage/montage/#concatenate

Alternativ ist auch das möglich
01.
montage 1050ajpg 1050b.jpg -mode Concatenate -tile x1 1050.jpg
@bastla
@rubberman

Besten Dank für eure Hilfe! So funktioniert es.
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Batch & Shell
gelöst CMD: icacls in for-Schleife (2)

Frage von Lowrider614 zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch Problem bei einer For Schleife (2)

Frage von Juergen42 zum Thema Batch & Shell ...

Batch & Shell
gelöst For Schleife kaputt? (5)

Frage von Peter32 zum Thema Batch & Shell ...

Batch & Shell
Batch: Variable Expansion in einer FOR-Schleife (9)

Frage von .Sessl zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows Server
Mailserver auf Windows Server 2012 (8)

Frage von StefanT81 zum Thema Windows Server ...

Backup
Clients als Server missbrauchen? (8)

Frage von 1410640014 zum Thema Backup ...

DSL, VDSL
DSL-Signal bewerten (8)

Frage von SarekHL zum Thema DSL, VDSL ...