szCol=$(zenity --color-selection --show-palette ); echo $szCol |
Man kann sogar einen HEX-Code hineinschreiben.
Nach dem Drücken der Taste Auswählen erhält man
die Ausgabe des Farbwertes im Terminal. Dieser Farbwert wird im rgb-Format
ausgegben und ist gleich weiterverwendbar. Es gibt auch ein Schieberegler-Fenster. Den Rückgabewert erhält man mit |
szAb=$(zenity --scale --title="Abstand festlegen" --text=" Einstellung des Abstandes \n von Schrift zu Spiegelbild \n in pixel" --min-value=0 --max-value=50 --value=10 ); echo $szAb |
Für das Folgende muß man
ein wenig über ImageMagick wissen. Das soll aber hier nicht vertieft
werden. Im Internet habe ich ein Kommando gefunden mit dem man ein
Spiegelbild erzeugen kann. Damit kann man ein neues Script schreiben, das
folgendes macht: Es wird ein Farbauswahlfenster erzeugt und der Farbwert szCol als Variable hinterlegt. Es wird ein Textfenster erzeugt und der Eingabetext szTxt als Variable hinterlegt. Es wird ein Schieberegler-Fenster erzeugt und die Schrifthöhe szSch als Variable hinterlegt. Es wird ein Schieberegler-Fenster erzeugt und der Abstand zwischen Schrift und Spiegelbild szAb als Variable hinterlegt. Mit label wird nun eine Simulierung des geschriebenen Textes durchgeführt, denn label erzeugt automatisch die passende Bildgröße für die ausgewählte Schrift. Es wird die Bildbreite szB und die Bildhöhe szH als Variable hinterlegt. Es wird das Datum mit Stunden, Minuten und Sekunden als Variable szDt hinterlegt, denn es wird eine Bild-Datei erzeugt, die dieses Datum als Dateiname erhalten soll. Dadurch kann man das Programm immer wieder aufrufen und es wird jedesmal eine Bild-Datei mit anderem Namen erzeugt - es wird keine bestehende Datei überschrieben. Dann wird mit den zuvor bestimmten Bildmaßen ein Schriftzug mit draw gezeichnet. Danach wird ein transparentes Abstandsbild erzeugt, und das gezeichnete Bild auf den Kopf gestellt. Es wird eine Maske erzeugt, die den auf dem Kopf stehenden Schriftzug von oben nach unten immer transparenter werden läßt. Zwischenbilder werden gelöscht und dann alles senkrecht aneinandergeklebt. |
nano ~/Bla/scZ.sh |
Eingabe in den Editor: |
#!/bin/bash szCol=$(zenity --color-selection --show-palette ) if [ "$szCol+1" = "+1" ]; then exit; fi szTxt=$(zenity --entry --ok-label "Weiter zu Schriftgröße" --title "Texteingabe" --text " Es wird später eine Zeile \n ausgegeben, \n also nicht zu viele \n Zeichen verwenden" --entry-text "" ) if [ "$szTxt+1" = "+1" ]; then exit; fi szSch=$(zenity --scale --ok-label "nächste Eingabe" --title="Schrifthöhe festlegen" --text=" Einstellung der Schrifthöhe" --min-value=12 --max-value=200 --value=60 ) if [ "$szSch+1" = "+1" ]; then exit; fi szAb=$(zenity --scale --title="Abstand festlegen" --text=" Einstellung des Abstandes \n von Schrift zu Spiegelbild \n in pixel" --min-value=0 --max-value=50 --value=10 ) szB=$(convert -background none -fill black -pointsize "$szSch" -font Freeserif-Fett label:"$szTxt" -border 4x4 -format '%w' info: ) szH=$(convert -background none -fill black -pointsize "$szSch" -font Freeserif-Fett label:"$szTxt" -border 4x4 -format '%h' info: ) szDt=$(date +"%y-%m-%d-%H-%M-%S") convert -size "$szB"x"$szH" xc:none -fill black -font FreeSerif-Fett -pointsize "$szSch" -gravity center -draw "text 0,2 '$szTxt'" -draw "text 1,2 '$szTxt'" -draw "text 2,2 '$szTxt'" -fill "$szCol" -draw "text 0,0 '$szTxt'" \( -size "$szB"x"$szAb" xc:none \) \( -clone 0 -flip \) \( -clone 0 -alpha extract -flip -size "$szB"x"$szH" gradient: +level 0x98% -compose multiply -composite \) \( -clone 2 -clone 3 -alpha off -compose copy_opacity -composite \) -delete 2,3 -channel rgba -alpha on -append ~/"$szDt".png |
Nun muß man diese Datei ausführbar machen (also in ein Programm verwandeln): |
chmod +x ~/Bla/scZ.sh |
Nun erzeugt man noch ein kleines Bild für das Programm: |
convert -size 48x48 xc:red \( -size 40x40 xc:yellow \( -size 30x30 -background green -gravity center -fill black -font FreeSerif -pointsize 36 label:Z \) -gravity center -composite \) -gravity center -composite ~/Bla/CZ.png |
Mit Rechtsklick auf die Datei scZ.sh
wählt man wieder Eigenschaften. Dann vergibt man einen Namen, hier
etwa Spiegeltext Für das Icon wählt man die Datei CZ.png aus dem Ordner Bla, dann schließt man das Eigenschaften-Menü. Rechtsklick auf und Ausführen ergibt: |
Nach Drücken auf OK wurde ein Datumsbild.png erzeugt mit transparenten und halbtransparenten pixeln. Dieses Bild ist nicht im jpg-Format oder im gif-Format darstellbar, da beide Formate keine halbtransparenten pixel unterstützen. |
Aber man kann das Datumsbild.png leicht auf
ein Hintergrundbild legen und dann verschmelzen die halbtransparenten
pixel mit den pixeln des Hintergrundbildes. Dies ist im Terminal möglich
durch convert Hintergrund.png Datumsbild.png -gravity north -composite Beispiel.png Das Hintergrundbild.png kann natürlich einen beliebigen Namen haben und auch ein jpg-Bild sein. Das Datumsbild.png hat natürlich einen Namen der Form 17-10-15-17-51-22.png |
Diese grafische Fenster-Darstellung ist sehr schön aber das convert-Kommando in das Terminal einzugeben erlaubt sehr viel mehr Möglichkeiten. So ist die Schriftart hier fest vorgegeben - man kann natürlich ein Auswahlfenster für Schriftarten hinzufügen. So ist die Stärke des Transparenzverlaufes hier fest vorgegeben mit 98% - man kann natürlich ein Auswahlfenster für die Stärke des Transparenzverlaufes hinzufügen. Die Spiegelung ist hier für ein gezeichnetes Textbild durchgeführt worden, aber diese Spiegelung funktioniert auch bei jedem anderen Bild. |