Bildgröße und -auflösung per Batch oder JAVA-Skript
Hallo liebe Supporer,
kann ich die Bildgröße und -auflösung mehrere Dateien (*.jpg) in einem Ordner automatisch per Batch oder JAVA-Skript verändern und anschließen unter dem alten Dateiname mit Zusatz (z.B. *_neu.jpg) speichern?
Wichtig dabei ist, dass das ganze nicht über ein Programm wie IrfanView oder ähnlichem passiert, sondern in einer Batch- oder Java-Datei.
Vielen Dank im Voraus
Paulo87
Antwort schreiben
Antwort 1 von conny77 vom 05.12.2019, 09:18 Options
IrfanView kann aber auch ohne grafische Oberfläche, über "Command Line" benutzt werden. So kann man die vielen Möglichkeiten des Programms auch mit einer Batch-Datei nutzen.
Zitat aus der Hilfe:
Zitat:
Example for conversion:
i_view32.exe c:\test.bmp /convert=c:\test.jpg
Convert file: 'c:\test.bmp' to 'c:\test.jpg' without GUI.
i_view32.exe c:\*.jpg /convert=d:\temp\*.gif
i_view32.exe c:\*.jpg /resize=(500,300) /convert=d:\temp\*.png
i_view32.exe c:\*.jpg /resize=(500,300) /aspectratio /resample /convert=d:\temp\*.png
i_view32.exe c:\test.bmp /convert=c:\test_$Wx$H.jpg
i_view32.exe c:\*.jpg /advancedbatch /convert=c:\temp\*.jpg
(Note: Supported are all IrfanView read/save formats except audio/video.)
Antwort 2 von paulo87 vom 05.12.2019, 09:35 Options
Wow...das wusste ich nicht.
Vielen Dank für den Hinweis. Habe jetzt schonmal ein Batch-File geschrieben, das eine neue Datei mit Angabe von Breite und Höhe im Dateiname erstellt.
Wie kann ich z.B. die Breite des Bilds auf 20cm definieren?
Zitat:
i_view32.exe c:\*.jpg /resize=(500,300) /convert=d:\temp\*.png
Das sind ja sicher Pixel...
Und was bedeutet
Zitat:
i_view32.exe c:\*.jpg /resize=(500,300) /aspectratio /resample /convert=d:\temp\*.png
???
Vielen Dank für die Hilfe
Paulo87
Antwort 3 von paulo87 vom 05.12.2019, 10:17 Options
Hier noch mein Beispiel:
Zitat:
i_view32.exe C:\*.jpg /convert=C:\*_A.jpg
i_view32.exe C:\*_A.jpg /resize=(1000,600)
i_view32.exe C:\*_A.jpg /convert=C:\*_A_$Wx$H.jpg
del *_A.jpg
Erklärung:
- als erstes wird eine neue Datei erstellt mit dem alten Namen und Zusatz _A
- anschließend werden die Maße der neu erstellten Dateien verändert (hier in Pixel, gewünscht in cm)
- die neu dimensionierten Bilder werden dann umbenannt und mit Breite und Höhe im Dateiname versehen
- *_A.jpg-Dateien werden gelöscht
funktioniert aber nicht.
Außerdem möchte ich noch...
...dass ich die Breite in cm verändern kann und nicht in Pixel
...dass ich die Auflösung in dpi bestimmen kann
Viele Dank
Paulo87
Hallo Paulo,
Pixel oder cm ist eigentlich egal, du musst nur ausrechnen, wieviel Pixel du benötigst um bei der von dir gewünschten Auflösung auf die gewünschten 20 cm zu kommen.
20 cm = 7,874 Zoll (Inch) * gewünschte Auflösung in dpi = Anzahl der notwendigen Bildpunkte (Pixel)
Bildschirmauflösung 72 dpi: 567 Pixel für 20 cm
Bildschirmauflösung 96 dpi: 756 Pixel für 20 cm
Auflösung für Druck: 150 dpi: 1181 Pixel für 20 cm
usw.
Für die Festlegung der Auflösung kannst du i_view32.exe c:\test.jpg /dpi=(72,72) verwenden.
Bei dem Löschbefehl würde ich mal den kompletten Pfad eingeben.
Gruß
Pausenfüller
Antwort 5 von paulo87 vom 05.12.2019, 13:48 Options
Super!!!
Es geht voran.
Bis auf die Auflösung funktioniert jetzt alles. Jedoch ändert sich diese nicht bei Eingabe des Befehls
Zitat:
/dpi=(72/72)
.
Außerdem funktionieren die Platzhalter (*) nicht - ich muss die Dateinamen explizit angeben. Funktionieren Platzhalter überhaupt in der IrfanView Command Line?
Viele Dank für dir tolle Hilfe!!!
Paulo87
Antwort 6 von paulo87 vom 05.12.2019, 15:00 Options
...
auch nicht mit
Zitat:
/dpi=(72,72)
;-)