Beispiele
beliebige Datei in ico verwandeln
convert2ico
@echo off Set irfan=B:\Software\_graphik\Irfan\i_view32.exe set file=%1 FOR /f "delims=" %%f IN (%file%) DO (%irfan% "%%f" /convert="%%~df%%~pf%%~nf.ico")
Bild um 180° drehen und unter selben Namen speichern, wie bisher
mit irfanView Dateien um 180* drehen
@echo off Set irfan=B:\Software\_graphik\Irfan\i_view32.exe set file=%1 FOR /f "delims=" %%f IN (%file%) DO %irfan% "%%f" /rotate_r /rotate_r /convert="%%f"
Anmerkung: Für jpg gibt es eine sehr einfache Alternative JPEGTRAN.EXE und eine Reihe anderer Programme, die lossless JPGs rotieren. [Zum technischen Hintergrund siehe hier]. Der Code einer solchen Batch-Datei würde folgendermaßen aussehen:
Bach jpg verlustfrei um 180° drehen
@echo off Set jpgtran=B:\Software\_graphik\JpgCrop\jpegtran.exe set file=%1 FOR /f "delims=" %%f IN (%file%) DO %jpgtran% -rotate 180 "%%f" "%%f"
Und als vbs-Script [Achtung: funktioniert unter dem 64bit Windows 7 derzeit nicht – ist aber ein bekannter Fehler]
rotate
(c) Erhard Rainer - www.erhard-rainer.com ' HISTORY: ' 0.1 - 28.03.2009 - Basisskript ' 0.2 - 28.12.2009 - kleine Fehlerbehebungen ' ---------------------------- CONFIGURATION ---------------------------- ' ------------------------------ DECLARATION ------------------------------ Dim fso, objDatei, strLine, objFolder, bFolder, strGrad, oFile, Dateiname Const ForReading = 1, ForWriting = 2, ForAppending = 8 Set fso = CreateObject("Scripting.FileSystemObject") ' ---------------------------- USED FUNCTIONS ---------------------------- ' ---------------------------- USED PROCEDURES ---------------------------- ' ------------------------------- ARGUMENTS ------------------------------- 'Standardwert für Drehung festlegen strGrad = "180" 'einzelne übergebene Parameter auslesen Set objArgs = WScript.Arguments For Each objArg in objArgs msgbox objArg length = instr(objArg,":") Select Case left(objArg,instr(objArg,":")) Case LCase("/zielordner:") strFolder = right(objArg,len(objArg)-length) Case LCase("/dateiliste:") strFile = right(objArg,len(objArg)-length) Case LCase("/grad:") strGrad = right(objArg,len(objArg)-length) End Select next ' -------------------------------- SCRIPT -------------------------------- 'abschließendes "\" im Ordner prüfen if right(strFolder,1) <> "\" then strFolder = strFolder & "\" 'Überprüfen, ob die Datei existiert if Fso.fileexists(strfile) = False then msgbox "2" Call Fehlerbehandlung("File",strFile) end if ' Prüfen, ob der Zielordner existiert bFolder = True if fso.folderexists(strfolder) = False then bFolder = False end if ' Datei mit den Dateinamen auslesen Set objDatei = fso.OpenTextFile(strFile, ForReading) Do until objDatei.AtEndOfStream 'Wiederhole, bis am Ende der Datei angelangt strLine=objDatei.ReadLine if Fso.fileexists(strLine) = True then if bFolder = False then 'im Ausgangsordner die Datei überschreiben call Drehen(strLine,strLine,strGrad) else 'Dateinamen aus strLine extrahieren Set oFile = fso.GetFile(strLine) Dateiname = fso.GetFileName(oFile) call Drehen(strLine,strFolder & Dateiname ,strGrad) end if else WScript.Echo strLine & "(Datei nicht gefunden)" end if Loop objDatei.Close Set fso = nothing Set oFile = nothing Set objDatei = nothing Set objFolder = nothing WScript.Echo "Ordner erstellt" ' -------------------------------- ERRORS -------------------------------- Sub Fehlerbehandlung(strFehler,strtmp) if strFehler = "File" then WScript.Echo "Die Datei " & strtmp & " konnte nicht gefunden werden" elseif strFehler = "Folder" then WScript.Echo "Der Ordner " & strtmp & " konnte nicht gefunden werden" end if Wscript.Echo "usage: rotate.vbs /zielordner:<Folder> /dateiliste:<Datei> /Grad:[90|180|270 usw]" wscript.Quit End Sub Sub Drehen(origImg,newImg,Grad) Dim img, msgs Set img = CreateObject("ImageMagickObject.MagickImage.1") msgs = img.Convert(origImg, "-rotate", 180, newImg) Set img = Nothing end sub
Anmerkung: Falls es zum Runtim Error “0x800A01AD” kommt regsvr32 <pfad>\ImageMagickObject.dll ausführen. Selbiges gilt, wenn beim SimpleTest.vbs (C:\Program Files\<Pfad>\ImageMagickObject\Tests\) Script der Fehler 424: Object required bzw. 424: Objekt erforderlich gemeldet wird. Sofern man ImageMagick unter VBA oder VBScript verwenden möchte, ist es sehr wichtig, dass “Install ImageMagickObject OLE Control for VBScript, Visual Basic, and WSH” markiert ist. [Die äußerst kurze offizielle Einführung]
Links
- IrfanView – Command Line Options
- IrfanView – Convert Images on the Command Line
- IrfanView – [dos batch] Irfan view command line options
- ImageMagick Tutorial
- ImageMagick – Graphics from the command line
- ImageMagick – Franz Fiala – Batch-Bearbeitung von Bilddateien