Ich habe mir ein kleines Shell-Skript geschrieben, dass mir aus einem Ausgangsfoto zwei quadratische Bilder macht und diese mit diversen Textelementen versieht. Die Textelemente werden im Vorfeld eingegeben und dann mit ImageMagick auf die Bilder geschrieben.
An zwei Stellen funktioniert mein Skript noch nicht reibungslos und ich würde gerne um Hilfe bitten.
1) Übergabe eines ermittelten Farbwertes an ImageMagick (...)
1 2 3 4 5 | farbe="$(./dominantcolor resize.png)" echo $farbe #ergibt den Korrekten wert, z.B. als #995F26 convert resize.png -alpha set -fill '"$farbe"' -draw 'color 0,0 reset' -gravity center -crop 1080x1080+0+0 farblayer.png #Ein Farb-Layer soll entstehen, der aus der dominanten Farbe des Ausgangsbildes besteht. |
Problem: Die Farbe wird so nicht richtig án Imagemagick weitergegeben. Gebe ich den Wert #995F26 händisch ein, funktioniert es wie gewollt.
2) Variable vor der Verarbeitung verändern... nur wie?
(...)
1 2 3 4 5 6 7 | read -p "Kurztext einfügen: " kurztext echo Kurztext: $kurztext (...) convert p2plustemp.png -background transparent -fill white -font FreeSans-Fett -size 970x890 caption:\\"$kurztext" -gravity North -geometry +0+25 -composite "$ausgabename"_2.png # Kurztext wird auf das Bild geschrieben und als Beispielbild_2.png abgespeichert. |
Der obige Text funktioniert. Er wird wie gewünscht an der richtigen Position auf das Bild geschrieben. Was ich gerne hätte wäre jedoch, dass dem Text noch "»" vorangestellt, und "«" und "[Weitere Info in der Beschreibung]" nachgestellt wird. Quasi:
»Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum« [Weitere Info...]
Meine (fehlgeschlagene) Lösungsstrategie:
1 2 3 | #kurztext=\'« "$kurztext" » [Weitere Info in der Beschreibung]\' # auch ${kurztext} wurde ausprobiert. convert p2plustemp.png -background transparent -fill white -font FreeSans-Fett -size 970x890 caption:\\"$kurztext" -gravity North -geometry +0+25 -composite "$ausgabename"_2.png |
Das führt leider nicht zum Erfolg, sondern zu diversen Fehlermeldungen.
Anmerkung: Der Hintergedanke war, die Variable einfach im Nachhinein zu manipulieren. Folgender Test hat funktioniert:
1 2 3 | kurztext=hallo kurztext="« $kurztext » [Weitere Info in der Beschreibung]" echo $kurztext # Ausgabe: « hallo » [Weitere Info in der Beschreibung] |
Ich vermute, dass es einfach an der Formatierung hapert. Aber leider bin ich ein blutiger Anfänger was die Shell angeht und ich kann nicht mehr tun, als alle möglichen Kombinationen von "\" "'" und Co auszuprobieren.
Kann mir jemand helfen, die Probleme auszubügeln?
Vielen Dank!!
PS: Ich sende gerne das vollständige Skript oder die Fehlermeldungen nach, falls das hilft.