ubuntuusers.de

Langeweile und Imagemagick

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

morgulbrut

Anmeldungsdatum:
23. Oktober 2007

Beiträge: 116

Wohnort: Winterthur

Ein Tweet brachte mich auf die Idee, ein Script zusammen zu basteln mit dem sich auf mit der Konsole solche Retrofotos basteln lassen, wie sie im Moment grad in sind.

Gesagt, getan und weil ich dabei was sehr cooles zum Thema Farbanpassungen in imagemagick gelernt habe, will ich euch das Resultat nicht vorenthalten.

Zuerst wird das Bild mal auf 1000 x 1000 Pixel zugeschnitten, dies damit die Rahmen und Störungen später nicht skaliert werden sollen. (ich bin nicht wahnsinnig bewandert in Sachen Vektorgrafik). In einem zweiten Schritt, werden die Farben angepasst, dies geschiet über Lookuptables (eben das sehr coole 😉 🇬🇧http://www.imagemagick.org/Usage/color_mods/#hald-clut. Danach werden noch Störungen und Rahmen, beides pngs über das Bild gelegt.

Effekte, Rahmen und Störungen liegen jeweils in einzelnen Ordner, und ohne Argumente wählt das Script zufälligerweise jeweils einen. Das System hab ich so gewählt, dass es einfach ist neue Effekte und so einzubauen.

So nun bewerft mich mit Schlamm 😉

redknight Team-Icon

Moderator & Supporter
Avatar von redknight

Anmeldungsdatum:
30. Oktober 2008

Beiträge: 21869

Wohnort: Lorchhausen im schönen Rheingau

Fehlt ja nur noch das Skript 😉

Gruß vom neugierigen Ritter

morgulbrut

(Themenstarter)

Anmeldungsdatum:
23. Oktober 2007

Beiträge: 116

Wohnort: Winterthur

redknight schrieb:

Fehlt ja nur noch das Skript 😉

Gruß vom neugierigen Ritter

Ja gestern merkte ich, nachdem ich den Text geschrieben und schon abgeschickt hatte, dass wohl der Anhang zu gross ist.

Drum mal hier ein Dropbox Link:

http://dl.dropbox.com/u/59555141/inshtagrm.tar.gz

BTW: wie kann ich meinen Eingangspost editieren? Hab das Inyoka Forum schon eine Weile nicht mehr gebraucht.

redknight Team-Icon

Moderator & Supporter
Avatar von redknight

Anmeldungsdatum:
30. Oktober 2008

Beiträge: 21869

Wohnort: Lorchhausen im schönen Rheingau

Nachdem jemand geantwortet hat, hast Du nur noch einen kleinen Zeitraum die Möglichkeit zum editieren.

dAnjou

Avatar von dAnjou

Anmeldungsdatum:
8. Oktober 2007

Beiträge: 872

Wohnort: Berlin

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
╭─max@XV88  ~/Downloads/inshtagrm  
╰─$ ls
distortions  effects  frames  inshtagrm.sh  tests
╭─max@XV88  ~/Downloads/inshtagrm  
╰─$ ./inshtagrm.sh 
convert: missing an image filename `temp.png' @ error/convert.c/ConvertImageCommand/2940.
convert: unable to open image `temp.png': png.la @ error/blob.c/OpenBlob/2489.
convert: unable to open image `temp.png':  @ error/blob.c/OpenBlob/2489.
convert: unable to open file `temp.png' @ error/png.c/ReadPNGImage/2951.
convert: missing an image filename `temp.png' @ error/convert.c/ConvertImageCommand/2940.
convert: unable to open image `temp.png': png.la @ error/blob.c/OpenBlob/2489.
convert: unable to open image `temp.png':  @ error/blob.c/OpenBlob/2489.
convert: unable to open file `temp.png' @ error/png.c/ReadPNGImage/2951.
convert: unable to open image `/home/max/Dropbox/inshtagrm/effects/*': png.la @ error/blob.c/OpenBlob/2489.
convert: missing an image filename `temp.png' @ error/convert.c/ConvertImageCommand/2940.
composite: unable to open image `/home/max/Dropbox/inshtagrm/distortions/*':  @ error/blob.c/OpenBlob/2489.
composite: unable to open image `temp.png': png.la @ error/blob.c/OpenBlob/2489.
composite: unable to open image `temp.png':  @ error/blob.c/OpenBlob/2489.
composite: unable to open file `temp.png' @ error/png.c/ReadPNGImage/2951.
composite: missing an image filename `temp.png' @ error/composite.c/CompositeImageCommand/1607.
composite: unable to open image `/home/max/Dropbox/inshtagrm/frames/*':  @ error/blob.c/OpenBlob/2489.
composite: unable to open image `temp.png': png.la @ error/blob.c/OpenBlob/2489.
composite: unable to open image `temp.png':  @ error/blob.c/OpenBlob/2489.
composite: unable to open file `temp.png' @ error/png.c/ReadPNGImage/2951.
composite: missing an image filename `temp.png' @ error/composite.c/CompositeImageCommand/1607.
basename: fehlender Operand
„basename --help“ gibt weitere Informationen.
mv: angegebenes Ziel „tests.png“ ist kein Verzeichnis

🐸

sebix Team-Icon

Ehemalige

Anmeldungsdatum:
14. April 2009

Beiträge: 5584

@dAnjou: Erst alle Optionen angeben, dann den Filename (zB aus tests/). Bei mir läufts fehlerfrei durch.

Zum Script muss ich leider sagen, dass die Fotos alles andere als alt aussehen. ImageMagick bietet eine eigene Option für Sepia an, die funktioniert wesentlich besser (zB http://www.imagemagick.org/script/command-line-options.php#sepia-tone). Weiters ist der Kontrast ein guter Anlaufpunkt (http://www.imagemagick.org/script/command-line-options.php#contrast-stretch).

MichaelaK

Anmeldungsdatum:
25. Mai 2011

Beiträge: 617

Und was ist mit dem Alt-mach-Filter von Gimp? Der erledigt doch skriptartig eine ganze Reihe von Vorgängen .... reichte dir der nicht aus? 😀

Antiqua Team-Icon

Avatar von Antiqua

Anmeldungsdatum:
30. Dezember 2008

Beiträge: 4539

@MichaelaK
GIMP ist nicht immer der Weisheit letzter Schluss. Oder kannst du mir schnell mal ein GIMP-Script machen, das 200 Fotos in einem Rutsch auf 800x600 verkleinert und gleichzeitig alles Sepia einfärbt? Oder 50 eingescannte Bilder, die leider um 6° gedreht sind und einen schwarzen Rahmen vom scannen haben, auf 0° dreht und den schwarzen Rahmen wieder entfernt?

Ein Bash-Einzeiler mit imagemagick kann das (und noch viel mehr). Das ist eine der Stärken der imagemagick-Tools.

@all

ich musste im Script die INSTALLDIR richtig setzen, dann gings.

dAnjou

Avatar von dAnjou

Anmeldungsdatum:
8. Oktober 2007

Beiträge: 872

Wohnort: Berlin

sebix schrieb:

@dAnjou: Erst alle Optionen angeben, dann den Filename (zB aus tests/). Bei mir läufts fehlerfrei durch.

Was denn für Optionen? Ich habe keine Anleitung gesehen, also habe ich es ohne Optionen und Parameter ausgeführt, was bei ordentlichen Programmen/Skripten die Hilfe anzeigt, wenn sie sonst nichts tun können.

sebix Team-Icon

Ehemalige

Anmeldungsdatum:
14. April 2009

Beiträge: 5584

Antiqua schrieb:

ich musste im Script die INSTALLDIR richtig setzen, dann gings.

Bei mir ging es aus mir unerklärlichen Gründen auch ohne.

dAnjou schrieb:

sebix schrieb:

@dAnjou: Erst alle Optionen angeben, dann den Filename (zB aus tests/). Bei mir läufts fehlerfrei durch.

Was denn für Optionen? Ich habe keine Anleitung gesehen, also habe ich es ohne Optionen und Parameter ausgeführt, was bei ordentlichen Programmen/Skripten die Hilfe anzeigt, wenn sie sonst nichts tun können.

Weil es keine Anleitung war ich so frei und hab mir den Code angesehen. Dort steht die Anleitung drinnen und man sieht auch, dass der Parameter -h die Hilfe anzeigt. Nicht jeder schreibt auf Anhieb ein perfektes Script.

Antiqua Team-Icon

Avatar von Antiqua

Anmeldungsdatum:
30. Dezember 2008

Beiträge: 4539

sebix schrieb:

Antiqua schrieb:

ich musste im Script die INSTALLDIR richtig setzen, dann gings.

Bei mir ging es aus mir unerklärlichen Gründen auch ohne.

Dann hast du das tgz entweder in $HOME/Dropbox entpackt oder das Script immer mit Optionen zu div. Files aufgerufen. Ein Aufruf nur mit dem zu bearbeitenden File sucht dann zufällige Bilder aus $INSTALLDIR/{distortions,effects,frames} und das geht schief, wenn $INSTALLDIR nicht stimmt.

Ein

while [[ $1 = "" ]]
do 
        usage
        exit
done

direkt unter oder über dem while getopts “hf:d:e:”-Block löst den von dAnjou bemängelten Lapsus.

sebix Team-Icon

Ehemalige

Anmeldungsdatum:
14. April 2009

Beiträge: 5584

Antiqua schrieb:

sebix schrieb:

Antiqua schrieb:

ich musste im Script die INSTALLDIR richtig setzen, dann gings.

Bei mir ging es aus mir unerklärlichen Gründen auch ohne.

Dann hast du das tgz entweder in $HOME/Dropbox entpackt oder das Script immer mit Optionen zu div. Files aufgerufen. Ein Aufruf nur mit dem zu bearbeitenden File sucht dann zufällige Bilder aus $INSTALLDIR/{distortions,effects,frames} und das geht schief, wenn $INSTALLDIR nicht stimmt.

Ah, stimmt. Die Variablen werden ja nur benötigt, wenn die Filenames nicht gegeben sind. Und ich habe alle Optionen angegeben, weshalb es funktionierte.

Antworten |