Größenänderung und Speicherung von PNG-Stapeln unter Wahrung der Transparenz

10

Ich habe über 700 PNG-Bilder. Ich muss die Größe ändern und sie speichern. Ich brauche aber auch ihre Transparenz, um intakt zu sein.

Ich habe Irfanview ausprobiert, aber das hat nicht funktioniert. GIMP funktioniert, aber ich kann keine Option zum Speichern von Stapeln finden. Ich werde die Größe von über 700 Bildern nicht manuell ändern und speichern. Das ist zu langweilig.

Gibt es Anwendungen, die den Job erledigen, den ich brauche?

Mürrischer alter Bär
quelle
Haben Sie ImageMagick ausprobiert?
Slhck
Nein, aber ist das nicht für Server?
Mürrischer alter Bär
1
Was meinst du mit Servern? Es ist eine Befehlszeilensoftware, die auf jedem Betriebssystem ausgeführt werden kann.
Slhck
Ja, nein. Kommandozeile ist nicht meine Stärke. Ich brauche etwas mit einer handlichen GUI.
Mürrischer alter Bär
@ DonSalva Sie können es innerhalb von 2 Zeilen von cmd mit ffmpeg tun, auch ohne Stärke
Jet

Antworten:

10

Entschuldigung, Sie müssen die Befehlszeile verwenden. Ich bezweifle wirklich, dass Sie ein GUI-Programm finden können, um damit umzugehen.

Sie haben nicht angegeben, welches Betriebssystem Sie verwenden. Unter Linux ändert der folgende Befehl die Größe aller PNG-Dateien im aktuellen Verzeichnis. Beachten Sie, dass die Originalbilder überschrieben werden:

##  bash (Linux, OSX):
for i in *png; do convert "$i" -resize 32x32 "$i"; done
##  on Windows:
for %i in (*png); do convert %i -resize 32x32 %i; done

Beachten Sie, dass Sie für die Windows-Zeile, wenn Sie sie in einem Skript und nicht in der Befehlszeile verwenden, %%istatt verwenden müssen %i.


Eine weitere Option wäre GIMP-Scripting . Dieses Skript ändert die Größe Ihres Bildes ( Quelle ):

(define (batch-resize pattern width height)
(let* ((filelist (cadr (file-glob pattern 1))))
(while (not (null? filelist))
(let* ((filename (car filelist))
(image (car (gimp-file-load RUN-NONINTERACTIVE filename filename)))
(drawable (car (gimp-image-get-active-layer image))))
(gimp-image-scale-full image width height INTERPOLATION-CUBIC)
(gimp-file-save RUN-NONINTERACTIVE image drawable filename filename)
(gimp-image-delete image))
(set! filelist (cdr filelist)))))

Speichern Sie es wie batch_resize.scmim GIMP- scriptsVerzeichnis und führen Sie es dann wie folgt aus:

gimp -i -b '(batch-resize "*.JPG" 604 453)' -b '(gimp-quit 0)'

AKTUALISIEREN:

Ich bin gerade auf diesen Beitrag gestoßen , der vorschlägt, dass das GIMP-Plugin Davids Batch-Prozessor genau das tun sollte, was Sie wollen. Der Artikel handelt von Linux, aber auf der Seite des Plugins befindet sich ein Link zu einer Windows-Version .

Terdon
quelle
Mein schlechtes, ich habe immer das Betriebssystem vergessen. Es ist Win7 64bit.
Mürrischer alter Bär
Nun, ImageMagick hat eine Windows-Version und Sie sollten (irgendwie) in der Lage sein, das GIMP-Skript auch in Windows zu verwenden.
Terdon
@ DonSalva siehe aktualisierte Antwort.
Terdon
ImageMagick ist ein großartiges Werkzeug für diese Art von Arbeit. Erfahren Sie, wie man es benutzt und Sie werden es für immer lieben!
Lee Harrison
Vielen Dank an @evilsoup für das Hinzufügen der Windows-Befehlszeile.
Terdon
4

Ich denke, das ImBatch- Tool kann Ihnen bei Ihrer Aufgabe helfen. Funktioniert gut mit Win7 x64 für mich. Es ist frei.

Max Smirnoff
quelle
Tolles Tool, viel flexibler als IrfanView und unterstützt PNG mit Alpha - danke!
Tomáš Kafka
3

XNConvert verfügt über eine einfache und intuitive Benutzeroberfläche für diese Aufgaben.

XnConvert ist ein leistungsstarker und kostenloser plattformübergreifender Batch-Image-Prozessor, mit dem Sie über 80 Aktionen kombinieren können. Kompatibel mit 500 Formaten. Es verwendet das Stapelverarbeitungsmodul von XnViewMP

  • Stapelverarbeitung
  • bewahrt die Transparenz (getestet mit einem transparenten PNG )
  • automatische oder vordefinierte Größenänderung
  • Keine Installation erforderlich

Geben Sie hier die Bildbeschreibung ein

Nixda
quelle
Ich habe es versucht und es hat keine Transparenz bewahrt (Mac-Version). Macht es, welche Art von Resampling verwendet wird (ich habe Lanczos wie Sie verwendet).
Niico
Ich habe das selbst herausgefunden - mit Bilinear Resampling. Sie können im 'Nachher'-Fenster sehen, wie es aussehen wird - wenn der transparente Bereich schwarz ist, wissen Sie, dass es nicht funktionieren wird.
Niico
@niico Ich habe jetzt 3 verschiedene Resample-Methoden ausprobiert, auch Lanczos. Sie alle erzeugen transparente Bilder. Vielleicht funktioniert die MAC-Version anders
nixda
Ich habe es auf PC und Mac versucht - auf beiden identisch. Weiter - ich bemerke jetzt, dass das Resampling, das ich gemacht habe, höllisch zackig und unbrauchbar ist.
Niico
2

Standardmäßig ist die Verwendung von FFMpeg der kürzeste Weg :)
Laden Sie es hier herunter , legen Sie es in den Ordner mit Ihren Dateien, öffnen Sie die Befehlszeile, gehen Sie in Ihren Ordner (mit cd) und schreiben Sie dort:

mkdir Resized
for %f in (*.png) do ffmpeg -i "%~nxf" -s 32x32 "Resized\%~nxf"

und ändern Sie 32x32mit Ihrer Größe. Die Größe Ihrer PNGs wird geändert und in einen ResizedOrdner verschoben .
Dies erledigt die Arbeit ohne Batch-Datei. Wenn Sie dies jedoch in eine Bat-Datei einfügen möchten, schreiben Sie %%anstelle von %.

Hoffe es wird dir helfen.

Jet
quelle
0

Ich habe ImBatch oder XNConvert nicht ausprobiert, die andere hier erwähnt haben, aber hier sind ein paar weitere Vorschläge für Sie:

  • pngquant (ein Befehlszeilentool. Ich selbst habe die auf der Seite enthaltene Windows-GUI PNGoo verwendet.)
  • Farbquantisierer (viele Möglichkeiten, Einstellungen zu ändern, um verschiedene Dithering-Algorithmen usw. zu verwenden. Ich habe es nie so gut zum Laufen gebracht wie PNGoo / pngquant, aber das könnte an meinen begrenzten Kenntnissen liegen).
  • TinyPNG.com (der kostenlose Webdienst hat ein Limit von 20 Dateien, die jeweils kleiner als 5 MB sind)
Carl
quelle
0

Ich hatte das gleiche Problem oft und hatte die meiste Zeit Photoshop installiert. Also habe ich dieses Skript mit ein paar Inspirationen aus dem Code anderer zusammengestellt.

https://gist.github.com/pixelbacon/7754cba64125b0240504

Verwendung

  • Installieren Sie Photoshop CC oder eine neuere Version.
  • Öffnen Sie das Skript in Photoshop.
  • In einem Dialogfeld werden Sie aufgefordert, einen Quellordner auszuwählen.
  • In einem Dialogfeld werden Sie aufgefordert, einen Zielordner auszuwählen.
  • In einem weiteren Dialogfeld werden Sie nach der maximalen Breite und Höhe gefragt.
  • In einem weiteren Dialogfeld werden Sie nach der idealen Breite und dann nach der idealen Höhe gefragt.
  • Warten Sie, während das Skript alle PSD- oder AI-Dateien öffnet, die sich in Ihrem Quellordner befinden, und speichern Sie sie als transparentes PNG-24.
  • Ein Dialogfeld informiert Sie, wenn es fertig ist.

Verweise

Es gab mehr als 2 Links zum Verweisen, mein aktueller Ruf erlaubt mir nicht mehr zu posten. Siehe das Originalskript, da Referenzen dokumentiert sind.

Pixelbacon
quelle