UnitColor

Aus Hobbyelektronik.org
Wechseln zu: Navigation, Suche

Ausgangssituation

Seit kurzem bin ich stolzer Besitzer eines Uni-Trend Speicheroszilloskops.

Das Teil macht hinsichtlich des Preises richtig viel Spaß, eines ist jedoch richtig blöd: Speichert man einen Screenshot auf einen kompatiblen* USB-Stick, stimmt die Farbpalette überhaupt nicht:

Unit shot before.png

Klar kann man die Farben manuell korrigieren, allerdings wird es nach dem 10 mal Wiederholen dieser Prozedur langweilig bis nervig.

Das kann Software doch viel besser ;-)

Erster Versuch

Für schnelle Hacks nehme ich ganz gerne PHP - aus dem "schnellen Hack" wurde hier leider ein ziemlich ekelhaftes Stück Software, denn:

  • PHP kann native keine Windows-Bitmaps (imagecreatefromwbmp ist irreführend!) lesen
  • Man kann die Bild-Palette anscheinend nicht direkt manipulieren
  • Die Pixelfunktionen sind umständlich und langsam (warum verwenden sie ein Array statt dem überall üblichen Integer?)
  • Welcher "normale" Elektronik-Bastler hat PHP lokal installiert?

Alles in Allem ziemlich großer Mist. (Wer will, kann sich die Quellen im Zip-Archiv ansehen)

Deshalb:

Zweiter Versuch

Mit Bildverarbeitung habe ich C# zwar noch nicht sonderlich viel gemacht, aber einen Versuch ist es Wert.

Das Schöne ist: Hier kann man die Bildpalette bearbeiten, was einen deutlichen Geschwindigkeitsvorteil verspricht.

Man muss also nur die Farben ändern und die Datei als PNG abspeichern. Um die Farbänderungen zu erhalten, muss die Bildressource komischerweise in eine neue gezeichnet werden. Bei dieser Gelegenheit wird das unwichtige (da immer gleiche) Menü rechts abgeschnitten.

Da (zumindest bei mir) die meisten aufgenommenen Bilder im Web landen, wäre es schön, wenn diese so klein wie möglich wären. Deshalb werden sie, sofern optipng.exe vorhanden ist, mit derselben komprimiert.

Im Schnitt wird aus den 80KiB großen Bitmaps 2KiB schlanke PNGs:

Unit shot after.png

Bedienung

Wer nicht weiß, was er mit den Dateien im Zip-Archiv anfangen soll: Die wichtigen Dateien liegen im Ordner \c-sharp\bin\Release\!

Die Bedienung gestaltet sich als sichtlich einfach. Man muss nur die UnitColor.exe mit den umzuwandelnden Bitmaps öffnen. Im einfachsten Fall können die Bilder einfach per Drag & Drop auf die Exe-Datei gezogen werden; die umgewandelten Dateien werden im gleichen Ordner wie die Quelldateien mit der Dateierweiterung .png gespeichert.

Download

Datei:UnitColor 1.0.zip Version 1.0 vom 24.02.2010