## c't-Projekte - Mailinglisten

[Voriger (Datum)] [Nächster (Datum)] [Voriger (Thread)] [Nächster (Thread)]
[Nach Datum][Nach Thread]

### AW: [ct-bot] Fotorealistisches LCDisplay

Absender: Ralf Löhmer
Datum: Fr, 10.03.2006 18:11:05
In-reply-to: <44109EF2.9090107@xxxxxxxxxxxxxxxx>

    Hallo,
    nochmal wg. Transparenz.
    Vielleicht hilft der Anhang weiter.
    rl

    -----Ursprüngliche Nachricht-----
    Von: ct-bot-entwickler-bounces@xxxxxxxxxxxxxxxxx
    [mailto:ct-bot-entwickler-bounces@xxxxxxxxxxxxxxxxx]Im Auftrag von
    Stefan Geuken
    Gesendet: Donnerstag, 9. März 2006 22:33
    An: ct-bot-entwickler@xxxxxxxxxxxxxxxxx
    Betreff: [ct-bot] Fotorealistisches LCDisplay

    Hallo,

    ich experimentiere gerade mit meiner LCDisplay-Komponente
    (http://www.ctbot.de/index.php?page=4&action=file&file_id=41). Ich habe
    den ganzen Characterset jetzt in eine PNG-Datei gepackt (16x16 Zeichen,
    bestehend aus schwarzen und weißen Pixeln) und ziehe mit Hilfe der
    Klassen java.awt.image.PixelGrabber und java.awt.image.MemoryImageSource
    den für jedes Zeichen richtigen Bereich aus der PNG-Datei raus. Das
    klappt soweit auch.
    Was ich nicht hingekomme ist, daß die weißen Pixel transparent
    gezeichnet werden. Die bleiben weiß, obwohl ich im PNG die Farbe weiß
    als transparent abgespeichert habe. Kann mir jemand einen Tipp geben,
    wie man ein Bild mit transparenten Farben malen kann!?

    Gruß
    Stefan
    _______________________________________________
    ct-bot-entwickler Mailingliste
    ct-bot-entwickler@xxxxxxxxxxxxxxxxx
    http://www.heise.de/bin/newsletter/listinfo/ct-bot-entwickler

    ____________
    Virus checked by G DATA AntiVirusKit
    Version: AVK 16.5906 from 04.03.2006

    14.12.4 Transparenz  Quelle: Java ist auch eine Insel, C. Ullenboom

    Um eine bestimmte Farbe eines Bilds durchsichtig zu machen (also die Transparenz zu bestimmen), nutzen wir einen RGBImageFilter. Dabei implementieren wir einen Konstruktor, der die Farbe sichert, die transparent werden soll. Sie wird später in der Implementierung von filterRGB() verwendet. Die Methode, die ja für jeden Bildpunkt aufgerufen wird, liefert dann entweder die Farbe ohne Alpha-Kanal zurück (rgb|0xff000000) oder eben nur den Alpha-Kanal (rgb&0xffffff) für Transparenz. Eine interessante Erweiterung ist die Einführung einer Toleranzauswertung um einen »Zauberstab«, der ähnlich wie in Photoshop zu realisieren ist.

    Listing 14.26   TransparentFilter.java

    import java.awt.*;
    import java.awt.image.*;

    public class TransparentFilter extends RGBImageFilter
    {
      public TransparentFilter( Color color )
      {
        this.color = color.getRGB();
      }

      public int filterRGB( int x, int y, int rgb )
      {
        if ( rgb != color )
          return rgb | 0xff000000;
        else
          return rgb & 0xffffff;    //transparent
      }

      private int color;
    }

- Antworten:
  - Re: AW: [ct-bot] Fotorealistisches LCDisplay
    - From: Stefan Geuken

- Referenzen:
  - [ct-bot] Fotorealistisches LCDisplay
    - From: Stefan Geuken

- Voriger (Datum): AW: [ct-bot] Fotorealistisches LCDisplay, Ralf Löhmer
- Nächster (Datum): Re: AW: [ct-bot] Fotorealistisches LCDisplay, Stefan Geuken
- Voriger (Thread): AW: [ct-bot] Fotorealistisches LCDisplay, Ralf Löhmer
- Nächster (Thread): Re: AW: [ct-bot] Fotorealistisches LCDisplay, Stefan Geuken
- Indizes:
  - Datum
  - Thread