RGB-Cat: Tool um Farbwerte zu testen

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hi,

    schon länger nervte mich das umständliche Austesten und Einstellen von Ambilight-Farbwerten.
    Deswegen habe ich mich letztens ein Wochenende hingesetzt und ein kleines, Java-basiertes Programm geschrieben, welches mir dieses Einstellen erhelblich erleichtern kann.
    Dieses nannte ich RGB-Cat, RGB Color Adjustment Tool.

    1. Was kann das kleine Tool:

    • Anzeigen einer beliebigen RGB-Farbe im Vollbild-Modus
    • Automatischer Farbdurchlauf


    1. Einstellbare Updategeschwindigkeit
    2. Einstellbare Farb-Schrittgröße


    • Schwarz-Weiß-Modus
    • ...


    2. Warum benötige ich dieses Tool?

    "Für jeden der es noch nicht weiß"


    Bisher hatte ich beim Einstellen meines Hyperion-Ambilight-Setups immer folgende Probleme:

    * Farben über 'hyperion-remote --color' zu setzen hat zwar funktioniert, allerdings wusste ich nie, welche Farbe der angegebene Color-Code wirklich ist. Zum Beispiel '--color brown' zeigte zwar ein Braun, aber welches genau!?
    * Die erkannten Farben des Grabbers unterscheiden sich doch manchmal erheblich von der gesendeten Farbe. So leuchteten die LEDs Rot, wenn ich ein Braun von meinem Computer gesendet habe.
    * Zum Einstellen einer benutzerdefinierten Farbe musste ich erst umständlich den RGB-Code aus irgendeiner Tabelle heraussuchen

    Jetzt hat sich all dies hat sich mit dem entworfenen Tool erledigt, denn:

    * Der Hyperion-interne Grabber für beliebige HDMI-Quellen grabbt die Farbe aus einem extern angeschlossenen Gerät.
    * Dieses Gerät zeigt eine beliebige Farbe im Vollbild
    * Die Farbwerte erhöhen sich entweder automatisch im Automatikmodus, können pausiert und fortgesetzt werden.
    * Oder die Farben können manuell gesetzt und die Schrittgröße zur nächsten Farbe angepasst werden.

    Zudem kann man das Programm auch noch für andere Tätigekeiten gebrauchen, wie etwa:

    * Gamma-Kurven von Monitoren oder TVs überprüfen
    * Bildschirme auf defekte Pixel überprüfen
    * ...

    3. Installation

    • Java muss installiert sein
    • Downloade die ausführbaren Jar-Datei für dein Betriebssystem vom Unterordner jars
    • Führe die heruntergeladene Datei mit Java aus (eventuell Rechtklick + Öffnen mit Java notwendig)



    3.1 Kann ich das Tool auch auf meinem RaspberryPi zum Laufen bekommen?

    Ja, allerdings bisher noch ohne Anbindung an einen internen Grabber (boblight, AmbiTV, Hyperion...).
    Es muss der Umweg über HDMI-OUT --> HDMI2AV --> USB-Grabber bzw S-Video-Out --> USB-Grabber genommen werden.

    Folgende Abhängigkeiten müssen erfüllt werden:

    Code
    sudo apt-get install libcanberra-gtk-module libswt-cairo-gtk-3-jni


    Zudem muss eine Java-Version installiert sein. Gestestet ist das Programm mit 'oracle-java7-jdk' und 'openjdk-7-jdk'.

    3.2 Manuelle Installation vom SourceCode

    Spoiler anzeigen
    • Download/clone des sourcecodes von github
    • Erstelle ein Java-Projekt in der IDE deiner Wahl und importieren den Sourcecode des Verzeichnisses 'src'
    • Downloade die Eclipse SWT (The Standard Widget Toolkit)
    • Füge SWT zum Projekt-Buildpfad hinzu


    4. Steuerung des Tools
    Momentan lässt sich das Programm fast nur mit der Tastatur steuern.
    Die Tastaturkürzel sind in folgender Tabelle aufgelistet.

    'f' Wechsel von/zu Vollbildmodus
    'x','q' oder 'ESC' Beende das Programm
    'Leertaste' oder 'Enter' Pausieren/Fortsetzen des automatischen Farbdurchlaufs
    '-' / '+' Verringern/Erhöhen der Updategeschwindigkeit für den automatischen Farbdurchlauf
    'Hoch-Pfeil' / 'Runter-Pfeil' Erhöhe/Verringere die Schrittweite für Farbwechsel
    'Rechts-Pfeil' / 'Links-Pfeil' Erhöhe/Verringere die Farbe um eine Schrittweite
    'c' Öffnet einen Dialog zur Farbwahl
    'w' Aktiviere/Deaktiviere den Schwarz-Weiß-Modus
    'c' Öffnet einen Dialog zur Farbwahl
    'r' Setzt die Farbe zur Konstanten 'Rot' <-> RGB(255,0,0)
    'g' Setzt die Farbe zur Konstanten 'Grün' <-> RGB(0,255,0)
    'b' Setzt die Farbe zur Konstanten 'Blau' <-> RGB(0,0,255)
    'i','h' oder 'F1' Zeige die Hilfe




    5. Hilfestellung, Fehler/Bugs

    Ich hoffe, ihr könnt dieses kleine Tool gebrauchen und kommt damit zurecht.
    Sollte es irgendwelche Probleme geben, schreibt einfach einen 'issue' auf github oder hier im Forum.

    BTW: Ich habe momentan nur Linux am Laufen, deswegen konnte ich die für Windows erstellten Jars noch nicht testen. Bitte gebt mir dazu Feedback!

    Grüße,
    Marc

    ps:
    Releases

    • v1.0: erstes Release (6. April .2014)

      • Anzeige von Vollbildfarben
      • Automatikmodus zum Durchlauf von Farben
      • Farb-Schrittgröße und Updategeschwindigkeit einstellbar
      • Hilfe-Menü
      • Steuerung per Tastatur
    • v1.1 (11. April 2014)

      • Button zur manuellen Farbwahl
    • v1.2 (13. April 2014)

      • Schwarz-Weiß-Modus
      • Ausführbare jar-Datei für den Rasperry Pi hinzugefügt
      • Bugfix: Zu schnelles Ändern der Updaterate für den automatischen Farbdurchlauf konnte zu einem Stop des Farbdurchlaufs führen.
    • v1.3 (24. April 2014)

      • Bugfix: Wenn die Updategeschwindigkeit des Automatikmodus schneller war als die GUI zeichnen konnte, haben sich die Farben trotz eines Stops des Automatikmodus weiter geändert.
      • Jar-Datein als ausführbar (+x) markiert

    Geplant

    • Alle Elemente mit Maus steuerbar. Buttons einfügen
    • Hilfe-Menü: Liste ausrichten in der Windows-Version

    Einmal editiert, zuletzt von pmmd (24. April 2014 um 12:12)

  • Wow, super. Klingt doch vielversprechend.
    Ich werde es heute Abend mal austesten, dann habe ich auch die Zeit dazu :) Das Problem habe ich nämlich auch.

    EDIT: Super Tool! Gefällt mir. Damit lassen sich die Farben in der Tat schön abgleichen. Danke für deine Arbeit.
    EDIT²: Windows 8.1 64 Bit mit installiertem Java 64 Bit einfach mit einem Doppelklick gestartet. Läuft ohne Probleme.

    Einmal editiert, zuletzt von Maerchensarg (7. April 2014 um 22:19)

  • Super Arbeit^^ Finde ich echt sehr cool, und macht vieles einfacher^^
    Ich hab die Windows 64Bit Version getestet, und starte sie aus der cmd mit "java -jar rgb-cat_v1_win32_x86_64.jar"
    Und es funktioniert^^
    Auch wenn ich die Steuerung noch ein bisschen gewöhnungsbedürftig finde^^
    Aber ist wirklich eine sehr coole Arbeit^^
    Kann ich die Linux Versionen auf dem Pi laufen lassen? Das wäre ziemlich cool^^


  • [..]
    Ich hab die Windows 64Bit Version getestet, und starte sie aus der cmd mit "java -jar rgb-cat_v1_win32_x86_64.jar"
    Und es funktioniert^^


    Ah super, danke fürs Feedback :)

    Zitat


    Auch wenn ich die Steuerung noch ein bisschen gewöhnungsbedürftig finde^^

    Hättest du eine bessere Idee? Die nächste Version wird ein Popup enthalten, mit welchem man eine beliebige Farbe einstellen kann (RGB oder HEX)

    Zitat


    Kann ich die Linux Versionen auf dem Pi laufen lassen? Das wäre ziemlich cool^^


    Die Linux-Version glaube ich kaum. Ich schaue mir die nächsten Tage mal an, ob es SWT-librarys für ARM gibt.
    Und man bräuchte vermutlich auch eine Desktop-Oberfläche (XFace zb?!), sonst kann das Programm nicht starten.

  • Ein Popup wäre schon seehr cool^^
    Wobei... wenn ich im Vollbildmodus bin, und dann auf den Farbigenscreen klicke, würde das Popup ja verschwinden, und ich müsste wieder zurück tabben.. Außerdem könnte es passieren, dass manche User das Popup nicht sehen, wegen keine Ahnung wieso.. gibt ja immer wieder komische Probleme^^
    Ich persönlich kann mir auch die Befehle nicht merken, weswegen ich es gut fände, wenn diese Dauerhaft sichbar sind, bzw nur auf Nutzerreaktion verschwinden.
    Wobei die ganzen Sachen vielleicht irgendwann durch Buttons ersetzt werden sollten, da das nochmal angenehmer ist^^
    Außer... man hat keine Maus, zb am Pi, weil man dort nicht unbedingt eine braucht... kompliziert kompliziert...

    Verschiedene Farbdarstellungen finde ich gut. Hyperion nutzt HSV?
    Da es schon so lange her ist, was nutzt den Boblight bzw Ambi-TV?

    Auf dem Pi.. hm... Ich würde eventuel schauen ob Raspbian damit arbeiten kann. Ich weiß nichtmal welche Art von X es nutzt... Da es aber für Anfänger empfohlen wird, sollte es einiges können...
    Wobei ich auch keine Ahnung davon habe^^
    Vielleicht mal hier im Forum suchen, ob es etwas passendes dazu gibt^^

    Einmal editiert, zuletzt von qwasy (7. April 2014 um 22:27)

  • So, ich habe einen ColorDialog hinzugefügt.
    Öffnet sich auf Button-Press und mit der Taste 'c'.

    Alles mit Buttons zu versehen teste ich mal aus.
    Aber:

    1. Es darf nicht überladen wirken
    2. Es muss alles mittig sein, da der Grabber sonst ja falsche Farben erkennt...

    /edit: Upload erfolgt heute Abend, bin gerade auf der Arbeit :D


    EDIT²: Windows 8.1 64 Bit mit installiertem Java 64 Bit einfach mit einem Doppelklick gestartet. Läuft ohne Probleme.

    Ah jetzt erst gesehen :D Super, dass es funktioniert.

    Ich habe die SWT-Libraries einfach mit gepackt, für die entsprechenden Platformen.
    Wie das allerdings Lizenztechnisch aussieht habe ich keine Ahnung...
    Bei OpenSource sollte dies aber hoffentlich kein Problem sein :-/

    Einmal editiert, zuletzt von pmmd (9. April 2014 um 10:14)


  • Wenn du das noch halbwegs Anfängerfreundlich beschreibst mache ich den Thread oben fest (sticky) da dies in der Tat eine super Erleichterung ist.

    Super! :)

    Was meinst du mit 'das'? Die Steuerung des Programms, eine bessere (evt. auch deutsche) Installationsanleitung oder sonst irgendetwas?


  • Ich habe das jetzt aber schon richtig mitbekommen, dass das Tool für den Raspberry Pi nicht funktioniert ja?

    Es funktioniert, allerdings musst man die SWT-libraries selbst compilieren.
    Wenn ich Zeit finde kann ich das mal machen und eine Version für den Raspberry erstellen.

    Nur frage ich mich, was für einen Vorteil das hätte, da Hyperion nur XBMC oder Externer-Grabber verwenden kann.

    D.h man müsste machen:
    1. entweder: Raspberry-HDMI --> HDMI2AV --> Grabber-Eingang
    2. oder: Raspberry-Composite-Out --> Grabber-Eingang

    Da kann man aber direkt auch einen PC an den HDMI2AV-Converter oder Composite-Eingang des Grabbers hängen...

  • Ich versuche mal herauszufinden, ob man den Hyperion-Grabber nicht mit dem Bildschirminhalt füttern kann...
    Dann wäre es auch sinnvoll, auf dem Raspberry zum Laufen zu bekommen.

    Beziehungsweise: Man kann ja auf dem Raspberry einfach den Hyperion-Remote mit der aktuellen Farbe ansteuern, falls dieser läuft. Für AmbiTV /boblight etc ist das dann natürlich keine Lösung...

    /edit: Anpassung des ersten Threads und Upload der neuen Version mache ich doch erst morgen. Der Tag war einfach zu schnell rum :-/

    Einmal editiert, zuletzt von pmmd (10. April 2014 um 00:18)

  • Release: Version 1.2

    • Schwarz-Weiß-Modus hinzugefügt
    • Ausführbare jar-Datei für den Rasperry Pi hinzugefügt
    • Bugfix: Zu schnelles Ändern der Updaterate für den automatischen Farbdurchlauf konnte zu einem Stop des Farbdurchlaufs führen.

    dbv: Ich habe den ersten Post überarbeitet. ;)

    DerMega: ich habe die SWT-library auf meinem Raspbian installiert und konnte somit eine Jar-Version für den RaspberryPi (armhf) erstellen. Anleitung zur Installation der benötigten Abhängigkeiten ist im ersten Post zu finden.

    Einmal editiert, zuletzt von pmmd (14. April 2014 um 00:35)

  • v1.3 (24. April 2014)

    • Bugfix: Wenn die Updategeschwindigkeit des Automatikmodus schneller war als die GUI zeichnen konnte, haben sich die Farben trotz eines Stops des Automatikmodus weiter geändert.
    • Jar-Datein als ausführbar (+x) markiert
  • Hey, vielen Dank für dieses Tool und das du die Source öffentlich stellst.
    Ich habe es mal nach meinen Bedürfnissen ein bisschen angepasst. Es hat mich gestört das man immer durch alle Helligkeiten durch musste um eine bestimmte Farbe zu erreichen.

    Und zwar ändert sich die Farbe bei meiner Änderung nach dem HSV Farbmodell. Nur der Hue Wert wird immer vergrößert. Also es ändert sich nur die Farbe aber nicht die Helligkeit. Mit den Tasten o und l kann man die Brightness vergrößern bzw verringern und mit den Tasten u und j den Saturation Wert.

    Da die Farben aber immer noch als rgb gespeichert werden und nur zwischenzeitlich zu HSV konvertiert, ist es noch ein bisschen buggy wenn die brightness nahe bei 0 ist. Der Farbwert kann dann verloren gehen und man muss den interval Wert vergrößern um den hue Wert zu verändern.

    Wer das mal ausprobieren will kann sichs unter der Fork hier laden: https://github.com/Fabi1080/RGB-CAT

    Die jar hat die Endung hsv bekommen.

  • Danke TenEigthy. Wenn du es erlaubst, dann baue ich deine Änderungen in das Tool mit ein zusammen mit einem Toggle, ob man nach HSV oder nach RGB die Farben ändern möchte.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!