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, 5523 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
Ähnliche Inhalte
Batch & Shell
Zwei Ergänzungen in einer For Schleife

Frage von charmeur zum Thema Batch & Shell ...

Batch & Shell
gelöst FOR Schleife mit Unterverzeichnissen, die Ausgabe kürzen (tokens evtl.) (5)

Frage von Kriegstreiber zum Thema Batch & Shell ...

Batch & Shell
gelöst For Schleife für Abgleich mit Text-Datei und Unterverzeichnisse (4)

Frage von grisur zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
DSL, VDSL
gelöst DSL 200m verlängern (15)

Frage von Angela44 zum Thema DSL, VDSL ...

LAN, WAN, Wireless
Per Script auf UniFi-controller zugreifen und WPA2-Key ändern (11)

Frage von Winfried-HH zum Thema LAN, WAN, Wireless ...

Windows Server
SBS 2011 Standard virtualisieren (11)

Frage von HeinrichM zum Thema Windows Server ...

Exchange Server
gelöst DHCP Sever MS Server 2012 Problem (10)

Frage von Florian86 zum Thema Exchange Server ...