Archives for the year of: 2013

QR-Codes aus Bildern lesen und den Text anzeigen.

Unter Linux gibt es nicht so viele Möglichkeiten, QR-Codes auszuwerten. Eine Möglichkeit auf der Kommandozeile ist ZBar, leider hat es keine GUI. Was ich will soll per Rechtsklick aus meinem Dateimanager funktionieren und mir anschließend in einem Dialog anzeigen, ob und was zbar gefunden hat.

Endlich mal wieder ein Bash-Script… Ein paar Dinge sind Voraussetzung: Als erstes braucht es ZBar zum Auslesen der QR-Codes. Mit Zenity kann man grafische Dialoge in einem Bash-Script anzeigen. Mehr ist nicht nötig.

Es kann dem Script als Parameter ein oder mehrere Bilder übergeben werden. Eine while-Schleife liest & entfernt die Übergabe-Parameter solange, bis keine mehr da sind. Sollte der ermittelte Code mit http:// beginnen, wird er als Webadresse interpretiert: Der dann folgende Dialog bietet an, ihn im Webbrowser zu öffnen.
#!/bin/bash
# swg, 25.8.2013
#
# Verwendet ZBarImg zum Lesen von QR-Codes aus Bildern.
# der ermittelte Text wird in einem Zenity-Dialog angezeigt, mit einer passenden
# Option zur Verwendung (Webadresse-> im Standard-Browser öffnen
#
# erwartet als Parameter wenigstens eine Bilddatei!
#
if [ ! $# -gt 0 ]; then
echo „Usage: zbarimggtk.sh IMG1.jpg [img2.jpg …]“;
exit;
fi;
while [ $# -gt 0 ] # Solange Parameter da sind…
do
IMG=$1;
if [[ -f $IMG ]]; then # ist der Parameter eine reguläre Datei?
CODE=$(zbarimg -Dq $IMG | sed -e „s/QR-Code://“); # vom zbarimg-Rückgabewert
# „QR-Code:“ vorn abschneiden
if [[ -z $CODE ]]; then
zenity –error –text „Kein QR-Code im Bild $IMG gefunden!“ &
else
if [ $(echo „$CODE“ | grep „http://“) ]; then # wenn Code mit „http://“ beginnt,
# ist es eine Webadresse
zenity –forms –title=“Webdresse in $IMG gefunden“ \
–separator=“,“ \
–text=“Webadresse $CODE öffnen?“;
case $? in
0)
x-www-browser $CODE; # Webadresse im X-Standard-Browser öffnen
;;
1)
# User-Cancel!
;;
-1)
zenity –error –text=“Ein unerwarteter Fehler ist aufgetreten.“;
;;
esac
else # bei einfachem Text nur einen Info-Dialog anzeigen
# (Text ist markier- und kopierbar)
zenity –info –title=“Text gefunden:“ –text=“$CODE“ &
fi;
fi;
else
zenity –error –text=“Bild $IMG nicht gefunden!“ &
fi;
shift; # Vordersten Übergabe-Parameter des Scripts löschen
done

Ich verwende es im Rox-Filer und in Geeqie jeweils im Kontextmenü – ein Rechtsklick aufs Bild und das Script als ausführendes Programm gewählt und ich weiß, was mir der fotografierte QR-Code sagen will…

Hier noch das fertige Script:
Symbol Shellscript zbarimggtk.sh

(swg)

Hoppla, bin etwas spät dran, ‚tschuldigung. Jetzt liefer ich langsam mal echte Nüsse, da habt ihr ordentlich was zu knacken übers Wochenende: Was ist das?(Jaja, ich hab mit Gimp rumgeurcht, weil ich keine weißen Steine hab.)

Antworten gern in den Kommentaren, der erste richtige Kommentatisto gewinnt eine Tafel Luftschokolade.

(swg)

mein Kind. Fröhlich giggelnd hat sie sich Bettina in die Arme geworfen. Jetzt stiefelt sie da hinten zum Frühstück.Alina auf dem Weg zum FrühstückZum Winke-winke für Papa hat es nur gerade so noch gereicht.

(swg)

Bisher konnte ich nichts schlechtes über französische Autos – speziell Renault – sagen; ich konnte genau genommen gar nichts drüber sagen, schlicht aus Erfahrungsmangel. An sowas musste ich noch nicht rumschrauben.

Nun muss Marias gelber Twingo bald mal zum TÜV. Einige Problemchen hat der Zwerg, die ich schon kenne: der Rückfahrscheinwerfer geht nicht, die Klima muss abgedichtet und befüllt werden, der Auspuff ist vorn am Flansch hinterm Kat undicht und einen Ölwechsel braucht der Kleine auch.

Das Auspuffrohr ist schnell ersetzt, liegt auch schon hier rum. Öl hab ich vom BMW-Wechsel noch über, Filter ist da. Beim Rückfahrscheinwerfer ist es wohl so, dass der Schalter im Getriebe kaputt ist. Und hier beginnt das Malheur. Bei Marias Twingo-Inkarnation handelt es sich um die Version „easy“, der hat eine automatische Kupplung. Wie der Name verspricht, geht sowas ganz leicht kaputt, namentlich die Pumpe für die hydraulische Kupplungbetätigung. Die easy-Rechnung der Werkstatt für eine Reparatur lautet dafür lächelnde 1500,-€. Maria hat vor Jahren, als die Pumpe den Geist aufgab, eine manuelle Kupplung einbauen lassen: 700,-€.

Warum ich so weit aushole? Das bestehende Malheur ist der besagte Getriebeschalter des RÜckfahr-Scheinwerfers: Der ist in der Version spezial und ist der mal defekt, kostet er stolze 157,-€ beim Renault-Händler. Ein konventioneller Schalter kostet 9,-€. Spitze! Was für einen Unterschied fünf statt drei Drähte an so einem Schalter machen können!!

Ich hab mir den konventionellen Schalter besorgt und vom Schrott ein Stück Kabel mit dem passenden zweipoligen Stecker. Beim Durchmessen in der Werkstatt musste ich dann feststellen, das am alten Stecker nirgends Strom ankommt. Mist. Schaltpläne gibt’s zum Twingo easy auch nicht, also stelle ich das Problem zurück und widme mich etwas anderem. Nicht dem Auspuff, da musste ich schon entdecken, das der Pott hinten auch vom Rost gefressen wurde. Nichts, worin es sich lohnt, das neue Rohr zu stecken.

Tun wir also den Ölwechsel. Öldeckel vom Stutzen ziehen, die Ablassschraube in der Ölwanne ist schnell entdeckt und rausgedreht, es läuft. Interessant wird es bei der Suche nach dem Filter. Von unten nüscht, von oben… ah, doch da: vorn am Block, verdeckt von den Kühlerschläuchen etwas unterhalb der Lichtmaschine, kommt man kaum ran. Von unten gar nicht, da hängt der Klimakompressor und lässt keine Hand breit frei.Eine geschlagene dreiviertel Stunde fummel ich mit dem Ölfilterspanner zwischen Kühler und Block, bis sich die verdammte Büchse endlich löst und… feststeckt. Mit ordentlich fluchen kann ich den alten Filter am Kühlwasserschlauch vorbei zwängen, danach tun meine Hände weh – so kalt war der Motor auch noch nicht. Vergleichsweise flott – Erfahrung = Abschürfung, ne? – geht der neue Filter in Position. Noch einmal Gefummel mit dem Spanner – hoffentlich ist das teil fest genug und auch dicht. Ablassschraube rein, Öl drauf, Deckel und Stab rein. Fast zwei Stunden hat der Scheiß gedauert. Schluss!!1!

(swg)

PHP Code Snippets Powered By : XYZScripts.com