WIP Programmvorstellung

Ein Corgi mit Headset sitzt an einem Schreibtisch vor mehreren Monitoren, auf denen Programmcode zu sehen ist, während an der Wand ein Schild mit der Aufschrift „Work in Progress“ hängt.

Zwei Programme, ein Gerüst – HEICtoJPEG und der E-Ink Bulk Converter

Eigentlich sollte es nur ein Werkzeug werden. Für den Waveshare PhotoPainter hatte ich mir ja bereits ein kleines Python-Programm gebaut, das Bilder mit der richtigen Farbpalette in Bitmaps für den Rahmen verwandelt – Kontrast rauf, Sättigung rauf, Floyd-Steinberg-Dithering drüber, fertig ist das E-Ink-taugliche Bild. Aus „kleinem Hilfsprogramm“ wurde dabei relativ schnell eine Anwendung mit Drag & Drop, Einstellungen für Ausrichtung und Größenanpassung und einer Oberfläche, die nicht mehr aussieht wie ein Uralt-Tool aus dem letzten Jahrtausend.

Das Problem mit HEIC

Wer mit einem iPhone fotografiert, kennt das Format HEIC. Effizient, platzsparend, technisch durchaus sinnvoll – und für ImageMagick sowie meinen Bulk Converter erstmal komplettes Kauderwelsch. Ich konnte die Bilder also nicht einfach vom Handy holen und direkt in mein eigenes Programm ziehen, sondern musste sie vorher umständlich exportieren oder umwandeln. Genau die Art von Extra-Schritt, die mich auf Dauer nervt, weil sie sich bei jedem einzelnen Bild wiederholt.

Die Lösung war naheliegend: noch ein kleines Programm. Diesmal eins, das nichts anderes tut, als HEIC-Dateien per Drag & Drop entgegenzunehmen, sie in JPEG umzuwandeln und dabei optional gleich die Größe anzupassen – mit Voreinstellungen für 4K, Full HD oder eben einer freien Wunschgröße. Damit landen die iPhone-Fotos wieder in einem Format, mit dem der Rest meiner Werkzeugkette etwas anfangen kann.

Warum beide Programme gleich aussehen

Das eigentlich Praktische an der Sache: Ich musste die Oberfläche nur einmal bauen. Beide Programme nutzen das gleiche Grundgerüst – tkinterdnd2 für Drag & Drop, ttkbootstrap für ein Erscheinungsbild, das nicht sofort nach Tkinter aus den späten Neunzigern schreit, dazu eine Dateiliste, einen Optionsbereich und eine Fortschrittsanzeige. Statt mir für jedes kleine Tool eine neue Oberfläche auszudenken, konnte ich das bewährte Muster einfach übernehmen und mit den jeweils passenden Optionen füllen.

Ganz reibungslos lief das allerdings nicht. Wer tkinterdnd2 und ttkbootstrap kombinieren möchte, sollte tunlichst nicht auf die Idee kommen, beide Fensterklassen per Mehrfachvererbung zusammenzumischen – dann geht nämlich das intern geladene tkdnd-Package verloren und man landet mit einer hübschen TclError im Traceback. Der sauberere Weg ist, ganz stur bei TkinterDnD.Tk() als Hauptfenster zu bleiben und ttkbootstrap nur als Style obendrauf zu setzen. Klingt nach einer Kleinigkeit, hat mich aber trotzdem kurz stutzen lassen, bevor der Groschen gefallen ist.

HEICtoJPEG

Das kleinere der beiden Programme ist bewusst schlicht gehalten: HEIC-Dateien reinziehen, optional eine Zielgröße wählen – Original, ein paar gängige Presets oder freie Werte mit oder ohne beibehaltenem Seitenverhältnis –, JPEG-Qualität einstellen, fertig. Kein Schnickschnack, keine zusätzlichen Optionen, die ich sowieso nie benutze. Genau das richtige Werkzeug für ein Problem, das eigentlich nur einen einzigen Handgriff lösen soll. Edit aus der Zukunft: Mittlerweise hilft es auch die Bilder für diesen Blog vorzubereiten.

Der E-Ink Bulk Converter

Aus dem ursprünglichen Prototyp ist inzwischen der Bitmap Master geworden – mit Optionen für Größenanpassung (einpassen, ausfüllen oder stur dehnen), Ausrichtung, einem Filterprofil für optimierten Kontrast und natürlich der automatischen Verarbeitung über die passende palette.png. Statt einzelner Bilder wandert hier gleich der ganze Stapel durch, inklusive Log-Ausgabe, damit ich sehe, welches Bild geklappt hat und welches nicht.

Fazit

Am Ende sind aus einem eigentlich einfachen Bedürfnis – Bilder für einen E-Paper-Rahmen aufbereiten – zwei kleine, aber ordentlich aufgeräumte Programme geworden, die sich dieselbe Optik teilen und sich ganz gut ergänzen. Kein Meisterwerk der Softwarearchitektur, aber genau die Art von Werkzeug, die ich mir wünsche: unkompliziert, für den eigenen Alltag gebaut und ohne dass ich beim nächsten Mal wieder von vorne anfangen muss.

Bleibt nur noch die Frage, welches Problem als Nächstes ein eigenes kleines Tkinter-Fenster braucht. Bei mir ist das erfahrungsgemäß nur eine Frage der Zeit.

Hat dir dieser Beitrag geholfen?
Ich stecke viel Herzblut und Zeit in diesen Blog. Wenn du mir danke sagen möchtest, kannst du mir hier einen virtuellen Kaffee spendieren: buymeacoffee oder Ko-fi. Vielen Dank für deine Unterstützung!

Von Tobi

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert