Hallo,
nachdem sich hier mideal mit seinem Script "geoutet" hat dachte ich mir das es an der Zeit ist das ich auch mal eines meiner Scripte hier den Kritikern vorstelle:
Angefangen hat es damit das ich kein Schreiber von SMS bin (Finger zu dick :D) dieses aber beruflich benötigt habe. So habe ich mich auf die Suche gemacht und fand im Internet eine Befehlszeile die über einen Zenity-Dialog die Texteingabe entgegennimmt, das war diese:
Nun lege ich auch einen gewissen Wert auf Textformatierung, so das mir das nicht mehr genügte, im weiteren Verlauf hatte ich auch den Bedarf den Text aus einer bestehenden Datei zu benutzen und erweitere das Script abermals. Oftmals kam es dann vor das ich den gleichen Code öfter benötigte und so baute ich eine Funktion ein die mir den erstellten QR-Code sichert.
Die aktuelle Fassung sieh jetzt so aus:
Ich selbst komme damit ganz gut klar, würde aber gerne noch eine Prüfung einbauen die die Anzahl der benutzen Zeichen mit dem Standard verifiziert.
Hintergrund ist der, das ich bei langen Texten oder wenn ich Scripte in QR-Code wandle, das dann kein "richtig lesbarer" Text sondern ein "Produktcode" ausgegeben wird wenn ich das mit dem Smartphone fotografiere.
Es müsste also die maximale Anzahl an zulässigen Zeichen errechnen und mit den Zahlen des Wikipedia-Artikels vergleichen:
Vielleicht kann es ja noch jemand anderes gebrauchen oder verbessern.
Lieben Gruß aus Hessen
nachdem sich hier mideal mit seinem Script "geoutet" hat dachte ich mir das es an der Zeit ist das ich auch mal eines meiner Scripte hier den Kritikern vorstelle:
Angefangen hat es damit das ich kein Schreiber von SMS bin (Finger zu dick :D) dieses aber beruflich benötigt habe. So habe ich mich auf die Suche gemacht und fand im Internet eine Befehlszeile die über einen Zenity-Dialog die Texteingabe entgegennimmt, das war diese:
Nun lege ich auch einen gewissen Wert auf Textformatierung, so das mir das nicht mehr genügte, im weiteren Verlauf hatte ich auch den Bedarf den Text aus einer bestehenden Datei zu benutzen und erweitere das Script abermals. Oftmals kam es dann vor das ich den gleichen Code öfter benötigte und so baute ich eine Funktion ein die mir den erstellten QR-Code sichert.
Die aktuelle Fassung sieh jetzt so aus:
Code:
#!/bin/bash
# Name: txt2qrcodeV4.sh
# Datum: 13.04.2013
# Autor: herz_von_hessen@yahoo.de
# Abhängigkeiten: bash, function, zenity, if, elif, $, cat, qrencode, kde-open
# Was es tut: Dieses Script erzeugt aus Textdateien oder Texteingabe einen QR-Code
#################################################################################################################################################################
function menu {
AUSWAHL=$(zenity --list --radiolist --width=440 --height=200 --text "Möchten Sie eine Datei laden um einen QR-Code zu erzeugen?" --title "Auswahl" --column=""\
--column Punkt --column Beschreibung \
\"\" Ja "Eine Datei wählen" \
\"\" Nein "Text eingeben" \
\"\" Abruch "Das Script beenden" \
)
if [ -z "$AUSWAHL" ];then
zenity --info --text "Danke für die Benutzung von $0"
elif [ "$AUSWAHL" = Ja ];then
auswahl_Ja
elif [ "$AUSWAHL" = Nein ];then
auswahl_Nein
elif [ "$AUSWAHL" = Abbruch ];then
auswahl_Abbruch
fi
}
function auswahl_Ja {
FILEOPEN="$(zenity --file-selection --text "Bitte die Datei wählen die Du als QR-Code möchtest" --title=Datei-Auswahl)"
cat $FILEOPEN | qrencode -l L -v 1 -o qrcode.png
kde-open qrcode.png
zenity --question --text "Soll der QR-Code gesichert werden?"
if [[ $? == 0 ]] ; then
mv qrcode.png qr_$(date +"%d_%m_%Y_%H:%M").png
zenity --info --text="Der QR-Code wurde mit Datum und Zeit gesichert"
else
rm -f qrcode.png && zenity --info --text="Der QR-Code wurde entfernt"
fi
menu
}
function auswahl_Nein {
touch qrtext.txt
OpenPath="$(zenity --file-selection --filename=qrtext.txt)"
if [ "$OpenPath" != "" ]
then
Data=$(cat "$OpenPath")
NewData=$(echo -n "$Data" | zenity --text-info --filename=qrtext.txt --editable --width 650 --height 400)
SavePath=$(echo -n "$(zenity --file-selection --filename="$OpenPath" --save --confirm-overwrite)")
echo -n "$NewData" > "$SavePath"
fi
cat "$OpenPath" | qrencode -l L -v 1 -o qrcode.png
gpicview qrcode.png
rm -f $(echo $qrtext)
zenity --question --text "Soll der QR-Code gesichert werden?"
if [[ $? == 0 ]] ; then
mv qrcode.png qr_$(date +"%d_%m_%Y_%H:%M").png
zenity --info --text="Der QR-Code wurde mit Datum und Zeit gesichert"
else
rm -rf $(echo $OpenPath) && zenity --info --text="Der QR-Code wurde entfernt"
fi
menu
}
function auswahl_Abbruch {
zenity --info --text "Danke für die Benutzung"
menu
}
# Start
menu
Hintergrund ist der, das ich bei langen Texten oder wenn ich Scripte in QR-Code wandle, das dann kein "richtig lesbarer" Text sondern ein "Produktcode" ausgegeben wird wenn ich das mit dem Smartphone fotografiere.
Es müsste also die maximale Anzahl an zulässigen Zeichen errechnen und mit den Zahlen des Wikipedia-Artikels vergleichen:
Zitat:
Der maximale Informationsgehalt eines QR-Codes (177×177 Elemente, Fehlerkorrektur-Level L) beträgt 23.648 Bit (2.953 Byte). Damit lassen sich laut Hersteller 7.089 Dezimalziffern, 4.296 alphanumerische Zeichen oder 1.817 Kanji-/Kana-Zeichen kodieren.[7] Der Micro-QR-Code mit einer Größe zwischen 11×11 und 17×17 Elementen nimmt bis zu 35 Ziffern auf bei einer Randbreite von mindestens 2 Elementen. |
Lieben Gruß aus Hessen