Entwickler-Ecke

Multimedia / Grafik - png mit NICHT transparentem Text


jojo-sp - Di 03.05.11 10:34
Titel: png mit NICHT transparentem Text
Hallo

Zerbreche mir gerade den Kopf wie ich das Problem lösen kann, dass in meinem Image, in das ich eine png Datei lade, einen nicht transparenten Text ausgeben kann.

Laden der PNG Datei:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
Png:= TPngImage.Create;

  if Png <> nil then
  begin
    try
      Png.LoadFromFile('my.png');
      if img <> nil then img.Picture.Bitmap.Assign(Png);
    finally
      Png.Free;
    end;
  end;


Jetzt habe ich mit Img.Canvas.TextOut versucht einen Text auf dem Image auszugeben. Resultat: Der Text ist Transparent. :-(
Mein zweiter Versuch war mit bitblt (mit allen varianten SRCCOPY, SRCDRAW, usw) eine temporär für den text erzeugte bitmap auf das image zu klatschen. Resultat: Der Text ist Transparent -.-
Desweiteren habe ich mit den Solid eigenschaften von brush und Pen gespielt, aber auf die transparenz des Textes hat es keine Auswirkung.

Gibt es noch eine weitere Möglichkeit oder übersehe ich etwas?


bummi - Di 03.05.11 10:47

Den Text auf ein Hilfsbitmap malen lasse.
Über Scanline die Pixel die den Text darstellen im Zielbild setzen lassen und dort wo der Text ist den Alphakanal auf 255 setzen.


jojo-sp - Di 03.05.11 13:58

Danke!

Werde das ausprobieren!