Announcement

Collapse
No announcement yet.

Indizierte Farben

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Indizierte Farben

    Hallo zusammen,
    <br>
    ich suche nach einem Code Beispiel für die Farbkonvertierung einer 24Bit Bitmap nach Indizierte Farben 8Bit (Wie im Photoshop).<br>

    Gruß Andreas H.

  • #2
    Da ergibt sich sofort die Frage nach dem Verfahren. Zuerst muss eine Palette bestimmt werden. Entweder eine vorgefertigte Standardpalette wie die Windows-Palette oder eine dem Bild optimal angepasste.<br>
    Danach muss entschieden werden ob man auch die naechstpassende Farbe abbildet oder eine Fehlerdiffusion durch Dithering betreibt.<br>
    All diese Berechnungen sind keineswegs trivial

    Comment


    • #3
      Hallo Robert,<br>
      das hab ich mir fast gedacht ... <br>
      da ich nur Screenshots als Bildvorlage verwenden möchte währe die Palleten frage schon fast geklährt. Dithering kenne ich zwar von PS habe aber keine Ahnung was Dithering eigentlich ist. Vieleicht gibt es doch noch jemand im Forum mit einer ansatzweisen Lösung.<br>
      Gruß<br>Andreas Horlände

      Comment


      • #4
        Dithering: Wenn eine (kleine) Flaeche mit verschiedenfarbigen Bildpunkten gerastert ist, dann siehst du eine Mischfarbe. Entsprechend kann man also mit 256 Farben durchaus so tun als ob es mehr Farben waeren. Fehlerdiffusion bedeutet nun das man Bildteile so rastert das der Fehler zur echten Farbe moeglichst verteilt wird

        Comment


        • #5
          Wenn die Screenshots keine Echtfarb-Bilder enthalten, dann sollte die Anzahl der wirklich benutzten Farben sowieso nur in der Naehe von 256 liegen. Probier doch einfach bei deiner TBitmap mit dem Screenshot das PixelFormat auf pf8bit zu setzen. Das Resultat keonnte schon genuegen

          Comment


          • #6
            Hi Robert<br>
            dachte ich auch ..... aber nur das PixelFormat zu reduzieren reicht nicht. Wenn eine ScreenShot von einer Grafik Farbtiefe 32 Bit auf pf8bit gesetzt wird bekommt man ziemliche Farbschwankungen selbiges passiert auch wenn das Bitmap erst auf pf24bit gesetzt wird.(Tests mit 24 Bit Farbtiefe läßt leider meine Grafikkarten Treiber nicht zu) Nur beim 16 Bit ScreenShot ist das Ergebnis akzeptabel. Der Hintergrund ist der: Ich verwalte ScreenShots und komprimiere das Bitmap mit Zlib was eine bessere Kompression als JPEG ergibt, wenn die Farbtiefe <= 16 Bit ist. Das beste Ergebnis bekommt man mit 8 Bit.
            Da die Screenshots nur dokumentativen Zweck haben, und nicht als Bildverarbeitungsvorlage im DTP dienen müssen, kann man im punkto Qualität schon Kompromisse eingehen.<br>
            <pre>
            Mir fehlt ein wenig Grundwissen oder ich sehe den Wald vor Bäumen nicht

            24Bit Bitmap
            R=8Bit 256 Rot
            G=8Bit 256 Grün
            B=8Bit 256 Blau

            16Bit Bitmap
            R=?Bit
            G=?Bit
            B=?Bit

            8Bit Bitmap
            R=?Bit
            G=?Bit
            B=?Bit
            </pre>
            Gruß Andrea

            Comment


            • #7
              8 Bit Farbe ist mit Palette.<br>
              Eine Palette enthaelt 256 Truecolor-Farben. Der 8-Bit-Wert ist nur ein Index in die Palette.<br>
              Entsprechend kann man bei Reduktion auf 8-Bit eine Palette berechnen, bei der die bildpunkte moeglichst wenig verfaerben. Hat das Bild z. B. viele Rot-Toene, dann hat die Palette auch viele Rot-Toene.<br>
              Dithering ist unabhaengig davon. Es werden Bildpunkte geaendert (die 8-Bit-Werte), damit der Farbeindruck ueber die Flaeche noch naeher am original liegt. Dabei werden mehrere benachbarte Bildpunkte bewertet und der Farbfehler verteilt

              Comment

              Working...
              X