Posts mit dem Label Bildbearbeitung werden angezeigt. Alle Posts anzeigen
Posts mit dem Label Bildbearbeitung werden angezeigt. Alle Posts anzeigen

Donnerstag, 23. Februar 2023

Linux - Bildvergleich bzw. "Finde den Fehler" mit Kommandozeile (ImageMagick)

Mit Hilfe von ImageMagick lassen sich viele Konvertierungen oder Veränderungen an Bildern vornehmen. Siehe dazu auch meine Beiträge Linux - PDF in JPG mit der Befehlszeile/Kommandozeile konvertieren oder ImageMagick - Wasserzeichen (watermark) einem Bild hinzufügen. In diesem Beitrag zeige ich kurz, wie man "Fehler" bei einem Bildvergleich sehr schnell finden kann.


Sollte ImageMagick noch nicht installiert sein, kann man dies mit dem folgenden Befehl tun:
sudo apt install imagemagick


Ein Vergleich von zwei ähnlichen Bildern ist mit dem folgenden Befehl möglich:
compare Bildvergleich_1.png Bildvergleich_2.png Diff.png

Die durchgehend "roten" Bereiche zeigen den jeweiligen Unterschied an:


 

Freitag, 3. Juni 2022

Python - Generierung von QR-Code Bildern

Mit Hilfe der Python QR-Code-Generierungsbibliothek "qrcode" kann man ganz einfach QR-Code-Bilder generieren. Es ist auch mit "Pillow" möglich einen QR-Code in ein anderes Bild einzubetten oder ein Bild in einen QR-Code einzubetten. In diesem Beitrag zeige ich einige Beispiele.

Python QR-Code Bild-Generator: qrcode

Der QR-Code ist ein zweidimensionaler Code, der aus quadratischen schwarzen und weißen Punkten (Zellen) besteht, siehe auch https://de.wikipedia.org/wiki/QR-Code.

Python hat eine eigene Bibliothek zum Generieren von QR-Code-Bildern, siehe auch https://github.com/lincolnloop/python-qrcode.

Die Standardinstallation erfolgt mit dem folgenden Befehl:
pip install qrcode[pil]

Wenn man einen einfachen QR-Code erstellen möchte, funktioniert dies mit dem folgenden Befehl:
qr "Test Blog shemel.de" > qrcode.png

Hinweis: Ein QR-Code enthält nur eine Zeichenfolge (String).

QR-Code Bild mit Python erstellen

import qrcode

img = qrcode.make('https://www.shemel.de')

print(type(img))
print(img.size)

img.save('/home/hemel/qrcode_hemel_1.png')

Sollte der Fehler "AttributeError: module 'qrcode' has no attribute 'make'" erscheinen, bitte als Dateinamen NICHT qrcode.py wählen. Siehe auch https://github.com/lincolnloop/python-qrcode/issues/185.

Man kann auch mit Hilfe der QRCode-Klasse Details verändern:

qr = qrcode.QRCode(
    version=12,
    error_correction=qrcode.constants.ERROR_CORRECT_H,
    box_size=2,
    border=8
)
qr.add_data('htttps://www.shemel.de')
qr.make()
img = qr.make_image(fill_color="yellow", back_color="#23dda0")
img.save('/home/hemel/qrcode_hemel_2.png')


QR-Code in ein Bild einbetten

Mit Hilfe von PilImage kann man Image-Objekte direkt in andere Bilder einfügen bzw. einbetten.

Anbei ein Beispiel zum Einfügen des QR-Codes in der unteren rechten Ecke.

import qrcode
from PIL import Image

img_bg = Image.open('/home/hemel/blog.png')

qr = qrcode.QRCode(box_size=2)
qr.add_data('
htttps://www.shemel.de')
qr.make()
img_qr = qr.make_image()

pos = (img_bg.size[0] - img_qr.size[0], img_bg.size[1] - img_qr.size[1])

img_bg.paste(img_qr, pos)
img_bg.save('/home/hemel/qrcode_hemel_3.png')


QR-Code zum Bezahlen benutzen

Siehe auch c't 9/2022 S. 8 https://www.heise.de/select/ct/2022/9/softlinks/yb26?wt_mc=pred.red.ct.ct092022.008.softlink.softlink und https://de.wikipedia.org/wiki/EPC-QR-Code.

import qrcode

vwz = "Rechnung 123456789"
iban = "DE02100500000054540402"
bic = "BELADEBE"
recipient = "Beispielfirma Musterdörfer"
amount = 55.25
filename = "epc_qr"

# The docs can be found here: https://pypi.org/project/qrcode/
qr = qrcode.QRCode(error_correction=qrcode.constants.ERROR_CORRECT_M)

qr.add_data("BCD\n")
qr.add_data("002\n")
qr.add_data("1\n")
qr.add_data("SCT\n")
qr.add_data(bic+"\n")
qr.add_data(recipient[0:69]+"\n")
qr.add_data(iban+"\n")
qr.add_data("EUR"+str(amount)+"\n")
qr.add_data("\n")
qr.add_data("\n")
qr.add_data(vwz[0:139]+"\n")
qr.make(fit=True)
img = qr.make_image()
img.save(filename+".png")