Seite 1 von 1
Wiederkehrende Aufgabe automatisieren
Verfasst: Mo 22. Jul 2024, 10:03
von GIMPmicha
Folgende Aufgabe soll automatisiert werden:
- Ein neues Bild mit definierter Größe erstellen
- Bild per URL oder via Zwischenablage einfügen ODER (bevorzugt) URL und Filename (s.u.) per Skript abfragen
- Bild auf Inhalt zuschneiden
- Größe X/Y des Bildes ermitteln
- Bild skalieren mit festem Seitenverhältnis: Den größeren Wert X oder Y auf 1.920 setzen
- Bild in definiertes Verzeichnis als .png exportieren, Filename via Zwischenablage oder ???
Bei meiner Recherche habe ich
Script-Fu gefunden; das habe ich noch nie genutzt und wollte das Forum nach einem geeigneten Einstieg fragen. Dabei finde ich die Empfehlung für
BIMP und die Beschreibungen von @Gimplyworxs.
Die erste Frage also:BIMP oder Script-Fu? Worin unterscheiden sich die Lösungen?
Und dann: Ein Tutorial für diesen Lösung ...
Re: Wiederkehrende Aufgabe automatisieren
Verfasst: Mo 22. Jul 2024, 10:45
von Gimplyworxs
Die erste Frage also: BIMP oder Script-Fu? Worin unterscheiden sich die Lösungen?
Einfach gesagt:
BIMP hat eine grafische Oberfläche, so dass du alles per Klick-and-play erledigen kannst.
Script-Fu: da schreibst du dir in einem Editor ein kleines Programm.
Für Script-Fu gibts hier im Forum eine kleine Serie von Klara Fall:
viewtopic.php?t=409
Ansonsten gibts vergleichsweise wenig zu Script-Fu. Wenn du englisch kannst, gäb's hier noch eine kleine Einführung auf YT:
https://www.youtube.com/playlist?list=P ... 821B2370D4
Es gibt außerdem die Möglichkeit, statt Script-Fu Python zu verwenden.
Allerdings mit GIMP 2.10 nur Python2 und das ist bei vielen Distris schon ausrangiert, da uralt und eigentlich mausetot.
Ob dein GIMP Python Unterstützung hat? Schau mal nach, ob unter Filters ein Eintrag Python-Fu > Konsole existiert.
(Wenn nicht, ließe sich's nachrüsten).
Auch dafür gibts ne ( englische) Einführungsserie hier:
https://www.youtube.com/playlist?list=P ... V08wxdnWt-
Python ist halt erheblich übersichtlicher zu schreiben und zu lesen.
Edit gw:
Eventuell wäre auch eine Lösung mit Imagemagick (also ohne GIMP) denkbar.
Re: Wiederkehrende Aufgabe automatisieren
Verfasst: Mo 22. Jul 2024, 11:21
von anke
Zu Script-Fu haben wir hier auf der Webseite auch ein paar Tutorials -->
Scripten mit Scheme / Script-Fu
Ist schon ein bisschen älter, aber Sript-Fu hat sich ja nicht geändert.
Viele Grüße
Anke
Re: Wiederkehrende Aufgabe automatisieren
Verfasst: Di 23. Jul 2024, 20:01
von GIMPmicha
Danke für die Hinweise. Am besten gefällt mir
Gimplyworxs hat geschrieben: ↑Mo 22. Jul 2024, 10:45
... Eventuell wäre auch eine Lösung mit Imagemagick (also ohne GIMP) denkbar.
Dazu habe ich
diese Seite gefunden; hast Du so etwas gemeint?
Dann würde ich BASH-Script bauen, das auch die Interaktion mit dem Nutzer (Abfrage von Bild-URL und Ziel-Dateiname) erledigt. Als Aufgaben für Imagemagick bleiben:
- Bild per abgefragter URL holen
- Größe X/Y des Bildes ermitteln
- Bild skalieren mit festem Seitenverhältnis: Den größeren Wert X oder Y auf 1.920 setzen
- Bild unter dem abgefragten Ziel-Dateinamen speichern.
Denkanstöße und Hinweise auf die benötigten Imagemagick-Befehle sind willkommen, denn mehr als
Code: Alles auswählen
$ identify https://upload.wikimedia.org/wikipedia/commons/6/68/Joe_Biden_presidential_portrait.jpg
habe ich noch nicht geschafft ...
Re: Wiederkehrende Aufgabe automatisieren
Verfasst: Mi 24. Jul 2024, 09:38
von GIMPmicha
eine erste Lösung:
Code: Alles auswählen
#!/bin/bash
clear
PictureURL="https://upload.wikimedia.org/wikipedia/commons/thumb/3/34/Teatro_Colon_%2816149335130%29.jpg/320px-Teatro_Colon_%2816149335130%29.jpg" # klein 800*600
#PictureURL="https://upload.wikimedia.org/wikipedia/commons/5/57/Dresden%2C_Bautzner_Stra%C3%9Fe_107%2C_17.6.2.40-080348.jpg" # Querformat
# PictureURL="https://upload.wikimedia.org/wikipedia/commons/6/68/Joe_Biden_presidential_portrait.jpg" # Hochformat
PictureFile="/home/MeinName/Test.png"
width=$(identify -format "%w" "$PictureURL")> /dev/null
height=$(identify -format "%h" "$PictureURL")> /dev/null
if [ "$width" -gt "1920" ] || [ "$height" -gt "1920" ]; then # Größenänderung erforderlich
if [ "$width" -gt "$height" ]; then
magick "$PictureURL" -resize '1920x>' "$PictureFile"
else
magick "$PictureURL" -resize 'x1920>' "$PictureFile"
fi
else
magick "$PictureURL" "$PictureFile" # Original-Größe erhalten
fi
mediainfo "$PictureFile" | grep -iE "width|height"
Verbesserungsvorschläge willkommen ...
Re: Wiederkehrende Aufgabe automatisieren
Verfasst: Mi 24. Jul 2024, 09:52
von Gimplyworxs
Wenn's dir bei Verbesserungsvorschlägen um die Syntax geht, kann ich Shellcheck nur empfehlen.
https://www.shellcheck.net/
Falls du als Editor VSCodium nimmst, der hat das als Erweiterung verfügbar.
Bin nicht ganz sicher, ob du für resize dich selber ums Größenverhältnis kümmern musst, oder ob imagemagick das nicht selber macht.
Diese Übersicht bringt mich auf die Idee:
https://imagemagick.org/Usage/resize/
Wenn's extra eine Option gibt, das Seitenverhältnis zu ignorieren, sollte es ja standardmäßig drin sein ..
Diese Zeile(18)
magick "$PictureURL" "$PictureFile" # Original-Größe erhalten
bringt nichts.
Könnte so gehen:
magick identify -format "%w %h" $PictureFile
Wenn du nur einen der Werte haben willst, lass den anderen in der Zeile weg.
Re: Wiederkehrende Aufgabe automatisieren
Verfasst: Mi 24. Jul 2024, 20:06
von GIMPmicha
Danke! Der Tipp mit Imagemagick war sehr wertvoll, ist sicher einfacher, als GIMP zu "vergewaltigen" ...
ShellCheck nutze ich, habe es aber hier aus Zeitgründen noch nicht eingesetzt.
Die Sache mit dem Seitenverhältnis habe ich als Automatismus von Imagemagick verstanden (meine Quelle:
https://github.com/ImageMagick/ImageMag ... nt-2675836) und deshalb die beiden Zeilen für Landscpe und Portrait mit dem x vorne und hinten:
Code: Alles auswählen
magick "$PictureURL" -resize '1920x>' "$PictureFile"
magick "$PictureURL" -resize 'x1920>' "$PictureFile"
Funktioniert bei mir, deshalb die verschiedenen PictureURL zum Testen.
Die Zeile
Code: Alles auswählen
magick "$PictureURL" "$PictureFile" # Original-Größe erhalten
soll kleine Bilder (Höhe und Breite <= 1910) holen und unverändert speichern, funktioniert bei mir ...
Re: Wiederkehrende Aufgabe automatisieren
Verfasst: Mi 24. Jul 2024, 20:08
von Gimplyworxs
Ich hatte mir mal vor langer Zeit ein Script mit ImageMagick erstellt, um Bilder für's Web zu verkleinern und ein Wasserzeichen darauf zu platzieren. Weiß nicht, ob's für dich hilfreich ist. Kannst aber gerne mal reinschauen:
https://e.pcloud.link/publink/show?code ... dA7HD2lvPX
Das ist noch für ImageMagick 6.x. Bei der 7er Reihe muss vor dem IM Befehl noch ein "magick" kommen, also magick composite, z.B.
Re: Wiederkehrende Aufgabe automatisieren
Verfasst: Mi 24. Jul 2024, 21:04
von Gimplyworxs
soll kleine Bilder (Höhe und Breite <= 1910) holen und unverändert speichern, funktioniert bei mir ...
ahh ok, hatte die Absicht dahinter falsch erkannt.