Ankündigung

Einklappen

Nicht vergessen: Das KNX-UF-Symposium by eib-tech in München am 3. November 2017!

Mehr anzeigen
Weniger anzeigen

icon_creator

Einklappen
Das ist ein wichtiges Thema.
X
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    icon_creator

    Ich hab heut mal ein bisschen gescripted

    button-audio_headphone.png

    button_white-audio_headphone.png

    mettal_button2-it_wifi.png

    mettal_white_button2-it_wifi.png

    mettal_button_grey-it_wifi.png

    Script muss ich noch ein bisschen überarbeiten.
    Erfordert nur Python 2.7.3 Release und Python Imaging Library (PIL)


    Ein Hintergrund und halt ein paar Parameter wie Größe und Farbe in der auf den Hintergrund geschrieben wird.

    EDIT: da man es sonst nicht sieht. Die Maske im 1 und 3 Bild ist Transparent, somit kann man auch ein anderes Icon zum Färben dahinter legen.
    Nils
    xxAPI² - HTML5 Client für den Gira Homeserver (Status: Beta / Visuclient = 80% / xxAPI¹ Funktionen = 100% / zusätzlich: Slider/Drehknöpfe/Balken/mausnahe Popups/.... ) - Installation: Logikbaustein nach Start Triggern / Startlink auf der Debugseite

    #2
    Ok ich hab das script mal ein bisschen schöner gemacht.

    Das Script kann.

    --color=blue, purple, black, yellow, orange, green, white, transparent, red, grey
    oder aber
    --color=255,255,255 (gleiche wie white)
    oder mit alpha (transparenz)
    --color=0,0,255,40 (leicht transparentes Blau)
    oder das gleiche auch als hex
    --color=#ff00ff bzw #ffffff00 (gleich wie transparent)

    es kann die größe angegeben werden. (optional)
    --size=128,128

    es kann ein suchfilter für masken angewendet werden (optional | default raw_480x480\*.png)
    --mask=raw_480x480\it_*.png

    es muss am ende ein Hintergrundbild angegeben werden

    Code:
    c:\Python27\python.exe icon_creator.py -m "masks\it*.png" -s 128,128 -c #ff00ff metal_button.png

    Das Hintergrundbild sollte derzeit noch den Maßen der Masken entsprechen. (also 480x480)
    Ich werde das später evtl. noch einbauen das man auch größere nehmen kann und dann die Position bestimmen kann.


    @Marco in der Maske it_nas.png sind die Farben nicht weiß, daher kann mein script die nicht sauber erkennen. Kannst du das bitte ändern?

    Code:
    (252, 252, 253, 255)
    (251, 252, 252, 128)
    (250, 250, 251, 255)
    (252, 253, 253, 255)
    (251, 252, 252, 255)
    (249, 250, 251, 255)
    EDIT: oh und Marco ob du im SVN die background pngs in raw_480x480 rausnehmen könntest? Dann kann man einfach immer den ganzen ordner durchlaufen lassen ohne die vorher zu verschieben
    Angehängte Dateien
    Nils
    xxAPI² - HTML5 Client für den Gira Homeserver (Status: Beta / Visuclient = 80% / xxAPI¹ Funktionen = 100% / zusätzlich: Slider/Drehknöpfe/Balken/mausnahe Popups/.... ) - Installation: Logikbaustein nach Start Triggern / Startlink auf der Debugseite

    Kommentar


      #3
      So nun gehen auch größere Backgrounds.
      Es wird per default zentriert, kann aber auch mittels
      --posx=30 --posy=120 eine fixe Position angegeben werden

      ausserdem kann mit --scale=0.6 die Maske skaliert werden.

      PS: Danke an Marco fürs ändern und Danke an unseren Admin Ascherff fürs .py erlauben

      PPS: Es wäre schön wenn der ein oder andere mal seinen Buttonhintergrund sponsorn würde.

      PPPS: Meine aus den vorigen Posts waren natürlich aus dem Web geklaut sonst würde ich sie natürlich auch teilen, aber wer mich kennt weiß das sich meine grafischen Fähigkeiten dann doch eher im erstellen von Grafiken mittels Konsole befinden xD


      Angehängte Dateien
      Nils
      xxAPI² - HTML5 Client für den Gira Homeserver (Status: Beta / Visuclient = 80% / xxAPI¹ Funktionen = 100% / zusätzlich: Slider/Drehknöpfe/Balken/mausnahe Popups/.... ) - Installation: Logikbaustein nach Start Triggern / Startlink auf der Debugseite

      Kommentar


        #4
        version 1.2

        resize passte noch nicht bei nicht quadratischen Hintergründen.
        bei --size braucht jetzt nur noch ein Wert angegeben werden.
        --size=128,
        oder --size=,128

        EDIT: hab mal noch --bgcolor= hinzugefügt damit kann man dem transparentem Hintergrund noch eine Farbe geben damit das nicht so abgerissen aussieht.
        Angehängte Dateien
        Nils
        xxAPI² - HTML5 Client für den Gira Homeserver (Status: Beta / Visuclient = 80% / xxAPI¹ Funktionen = 100% / zusätzlich: Slider/Drehknöpfe/Balken/mausnahe Popups/.... ) - Installation: Logikbaustein nach Start Triggern / Startlink auf der Debugseite

        Kommentar


          #5
          So mal ein paar Beispiele:

          Code:
          $ python icon_creator.py -s 256,  --mask="raw_480x480/it_wifi.png" --scale=1 -c white round_blue.png
          round_blue_it_wifi-white.png

          Code:
          $ python icon_creator.py -s ,128  --mask="raw_480x480/it_wifi.png" --scale=0.6 --posx=150 -c red plate.png
          plate_it_wifi-red.png

          Code:
          python icon_creator.py -s 128,  --mask="raw_480x480/it_wifi.png" --scale=0.5 -c transparent metal-ring.png
          metal-ring_it_wifi-transparent.png

          Code:
          python icon_creator.py -s 140,140  --mask="raw_480x480/it_wifi.png" -c yellow darkmetal.png
          darkmetal_it_wifi-yellow.png

          wenn Interesse daran besteht könnte ich auch ein py2exe daraus machen, sodaß man kein Python extra installieren muss, sondern nur den Inhalt eines zips entpacken muss und alles nötige darin enthalten ist.

          Funktioniert aber eigentlich mit allen Python Versionen für die PIL installiert ist. Getestet unter Win32 Python24,python26,python27 und unter Linux python27.

          EDIT: Win64 geht nicht, daher dort einfach die 32bit Python und PIL Version installieren dann klappt alles. Es gibt halt keine offiziellen Win64 Builds vom PIL
          Nils
          xxAPI² - HTML5 Client für den Gira Homeserver (Status: Beta / Visuclient = 80% / xxAPI¹ Funktionen = 100% / zusätzlich: Slider/Drehknöpfe/Balken/mausnahe Popups/.... ) - Installation: Logikbaustein nach Start Triggern / Startlink auf der Debugseite

          Kommentar


            #6
            Version 1.3

            ok hab's mal eben reingehäckt.

            Einfach das Bild am Ende weglassen, aber es MUSS --bgcolor= angegeben werden.
            Angehängte Dateien
            Nils
            xxAPI² - HTML5 Client für den Gira Homeserver (Status: Beta / Visuclient = 80% / xxAPI¹ Funktionen = 100% / zusätzlich: Slider/Drehknöpfe/Balken/mausnahe Popups/.... ) - Installation: Logikbaustein nach Start Triggern / Startlink auf der Debugseite

            Kommentar


              #7
              icon_creator

              Ich mach mal nen neuen Thread dafür auf.

              Ich hab den icon_creator nochmal von scratch neu geschrieben.

              Features:
              * kann Icons aus einem Hintergrundicon + passender Masken erstellen
              * die Farbe in der die Masken auf das Icon "graviert" werden kann eingestellt werden
              * die Maske kann skalliert auf die Icons geschrieben werden
              * die Position der Maske auf dem Icon kann bestimmt werden
              * die Icons können skaliert werden
              * es kann eine index.htm mit allen Icons erstellt werden
              * es kann eine .hsi Datei aller Icons für den HS Import erstellt werden

              eigentlich sind alle Schalter optional, lediglich das Hintergrund-icon oder eine Hintergrundfarbe müssen angegeben werden. Diverse Dinge sollten aber gleich mit angegeben werden, wie etwa die Ausgangsgröße. Die Defaultfarbe ist transparent und der Default Maskenpfad ist .\raw_480x480\*.png

              Code:
              icon_creator.py
              --color=[black,white,green,transparent.... so ziemlich alle bekannten webfarben, ausserdem #c0c0c0 oder mit alpha angabe #c0c0c044 oder 255,0,255,128]
              --mask=[raw_480x480\it_*.png oder ähnliche eingegrenzte Masken]
              --size=[128,128 oder nur 128, oder ,128 dann wird die Relation automatisch eingehalten]
              --posx=[startposition x der Maske, default zentriert]
              --posy=[startposition y der Maske, default mittig]
              --scale=[0.5 um die Maske nur in halber Größe auf das Icon zu "gravieren"]
              --bgcolor=[Hintergrundfarbe angabe wie bei --color]
              --createindex=[1 erstellen einer index.htm mit allen Icons es können auch Zahlen über 5 angegeben werden, dies entspricht dann der Anzahl der Spalten die verwendet werden 5 ist minimum]
              --exportall=[1 oder 0 default ist 1, heißt das alle PNGs bei --createindex und --hsexport berücksichtigt werden]
              --hsexport=[GIRA1024V oder anderer Designname, exportiert alle Icons in eine .hsi Datei die im Homeserver Experten importiert werden kann]
              hintergrund-icon.png
              Feedback bitte.

              @Mods bitte nehmt doch die entsprechenden Beiträge aus Marcos Thread, da sie dort doch ein wenig OT sind und schiebt sie hierher

              Wenn Interesse an der .exe Version mit py2exe besteht, bescheid sagen ... scheint zu funktionieren, ist aber 2.9MB groß.

              Ansonsten wer noch kein Python hat.
              Python 2.7.3 Release

              Es wird weiterhin Python Imaging Library (PIL) benötigt, das auch in der Python 2.4 bzw. 2.6er Version vefügbar ist.

              Nur wer ein 64bit Windows nutzt sollte sich dort eine 32Bit Python Version installieren, da es keine offiziellen 64Bit Packete von Der PIL Image Library gibt.
              Angehängte Dateien
              Nils
              xxAPI² - HTML5 Client für den Gira Homeserver (Status: Beta / Visuclient = 80% / xxAPI¹ Funktionen = 100% / zusätzlich: Slider/Drehknöpfe/Balken/mausnahe Popups/.... ) - Installation: Logikbaustein nach Start Triggern / Startlink auf der Debugseite

              Kommentar


                #8
                Wenn Interesse an der .exe Version mit py2exe besteht, bescheid sagen ..
                Bescheid

                Na, ganz formel: gerne!

                und Danke für dein Engagement....
                EPIX
                ...und möge der Saft mit euch sein...
                Getippt von meinen Zeigefingern auf einer QWERTZ Tastatur

                Kommentar


                  #9
                  Version 2.1

                  **** neue Features
                  * Bild auf 8bit reduzieren (bei 96x96px ca. 10kb weniger)
                  * Befehlszeile in den Metadaten des Bildes speichern um das Bild später einfacher zu reproduzieren können

                  Code:
                  --usepalette=[0 Wert zwischen 0-255 die den Alphawert angeben der als transparent gesetzt werden soll]
                  --nosavemeta Befehlszeile wird nicht in den Metadaten gespeichert
                  Binary kommt gleich, muss eben auf Win wechseln.
                  Angehängte Dateien
                  Nils
                  xxAPI² - HTML5 Client für den Gira Homeserver (Status: Beta / Visuclient = 80% / xxAPI¹ Funktionen = 100% / zusätzlich: Slider/Drehknöpfe/Balken/mausnahe Popups/.... ) - Installation: Logikbaustein nach Start Triggern / Startlink auf der Debugseite

                  Kommentar


                    #10
                    Als Windows Programm mit Installer als py2exe Datei.
                    https://knx-user-forum.de/downloads.php?do=file&id=476
                    Nils
                    xxAPI² - HTML5 Client für den Gira Homeserver (Status: Beta / Visuclient = 80% / xxAPI¹ Funktionen = 100% / zusätzlich: Slider/Drehknöpfe/Balken/mausnahe Popups/.... ) - Installation: Logikbaustein nach Start Triggern / Startlink auf der Debugseite

                    Kommentar


                      #11
                      Hallo Nils,

                      ist eine tolle Sache das Tool, aber noch eine Frage vom Laien:
                      Wenn ich das Original-File mehrfarbig mache... Kann man das Tool so aufrufen, dass die Vordergrundfarbe unverändert bleibt, aber trotzdem skaliert und die Hintergrundfarbe verändert werden kann. Besser wäre noch, dass man eine definierte Vordergrundfarbe in eine andere umwandeln kann, der Rest gleich bleibt.

                      Ich will wirklich nicht unverschämt sein, aber ich hab' immer wieder den Eindruck, was für mich unlösbar ist, ist für dich oft eine Kleinigkeit.

                      Viele Grüße
                      Winni

                      Kommentar


                        #12
                        Hallo Nils,

                        habe das Tool hier mal getestet, komme aber nicht zum Ziel.

                        Code:
                        icon_creator.exe --color=yellow --mask="raw_480x480\message_garbage.png" --size=,60 --scale=0.6 --posx=150 raw_480x480_background\Background-2D-black.png
                        Ich möchte ein Icon haben, das 170x60 (Breite * Höhe) px groß ist und die Grafik soll im rechten Drittel sitzen. Der Hintergrund soll transparent sein.
                        Die Icons werden immer quadratisch, nicht wie dein rotes WLAN Symbol auf Schwarzem Grund oval.

                        Kannst Du mit das erklären?

                        Gruß
                        Lapheus

                        Kommentar


                          #13
                          macos sierra, funktioniert nur mit imports geaendert auf:
                          Code:
                          from PIL import Image
                          from PIL import ImageColor
                          from PIL import PngImagePlugin
                          und vorher ein "pip install Image" bzw "pip install Pillow"

                          Kommentar


                            #14
                            vielleicht hilfts wem: alle icons from cloned knxuf nehmen, modifizieren und in openhab droppen

                            Code:
                            # https://knx-user-forum.de/forum/playground/knx-uf-iconset/25512-icon_creator?p=433214#post433214
                            #
                            # pip install Image
                            #
                            
                            # wo liegen die icons rum und welche?
                            ICONS_PATTERN="knx-uf-iconset/raw_480x480/*.png"
                            
                            # welchen background dahinter legen?
                            BACKGROUND_NAME="Background-2D-white.png"
                            BACKGROUND_DIR="knx-uf-iconset/raw_480x480_background/$BACKGROUND_NAME"
                            
                            # muss man raten, kann man nicht beeinflussen...
                            ICONCREATOR_TARGET_DIR="Background-2D-white_480x480"
                            
                            # wohin damit?
                            TARGET_DIR="../openhab/etc/icons/classic"
                            TARGET_FILE_PREFIX="knxuf_"
                            TARGET_FILE_SUFFIX=".png"
                            
                            # anhand der - muessen wir den urspruenglichen icon-name aus der icon-creator-ergebnis-datei extrahieren
                            BACKGROUND_DASHES=`echo "$BACKGROUND_NAME" | grep -o '-' | wc -l`
                            FILENAME_AFTER_NUMBER_OF_DASHES=$((BACKGROUND_DASHES+1))
                            
                            python icon_creator_v2.py \
                              --color=black \
                              --mask="$ICONS_PATTERN" \
                              "$BACKGROUND_DIR"
                            
                            #mv "$ICONCREATOR_TARGET_DIR/*.png"
                            
                            for FILE_PATH in `ls $ICONCREATOR_TARGET_DIR/*.png`
                            do
                              FILE_NAME=`basename "$FILE_PATH"`
                              ICON_NAME=`echo "$FILE_NAME" | cut -d '-' -f $FILENAME_AFTER_NUMBER_OF_DASHES`
                              TARGET_FILE_NAME="$TARGET_FILE_PREFIX$ICON_NAME$TARGET_FILE_SUFFIX"
                            
                              TARGET="$TARGET_DIR/$TARGET_FILE_NAME"
                              mv "$FILE_PATH" "$TARGET"
                              echo "$TARGET - DONE"
                            done
                            speichern in create-foo.sh
                            Code:
                            chmod +x create-foo.sh
                            ./create-foo.sh
                            HF
                            Zuletzt geändert von hotzen; 11.05.2017, 17:35.

                            Kommentar

                            Lädt...
                            X