AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

IconToBitmap mit weißem Hintergrund

Ein Thema von qb-tim · begonnen am 27. Okt 2008 · letzter Beitrag vom 4. Nov 2008
Antwort Antwort
r29d43

Registriert seit: 18. Jan 2007
289 Beiträge
 
Delphi 10.4 Sydney
 
#1

Re: IconToBitmap mit weißem Hintergrund

  Alt 29. Okt 2008, 17:21
Das was da immer schwarz wird sind diejenigen Pixels, für die weder Rot noch Grün noch Blau einen Wert >0 hat. Ergo sind sie eigentlich auch tatsächlich schwarz. Gleichzeitig sind diese Pixels in einer Ikone gemäß deren bmMask aber für gewöhnlich auch wieder auf transparent geschaltet, werden also sowieso nicht ausgegeben. Sie beim Transfer auf das Bitmap mit clWhite zu laden geht schon, allerdings sollte dann bei der Ausgabe dieses Bitmaps dieser AlphaKanal ignoriert werden (denn da ist ja jetzt als Spezialität dieser Routine auch diese mbMask mit eingearbeitet worden), was aber meistens auch der Fall ist.


Pixels auf clWhite-Landen:

Delphi-Quellcode:
...
for x := 0 to result.Width-1 do
  for y := 0 to result.Height-1 do begin
    pRGBALine(result.Scanline[y])^[x].rgbReserved := NOT pRGBALine(mask.Scanline[y])^[x].rgbRed;
    if pRGBALine(mask.Scanline[y])^[x].rgbRed = 255 then result.Canvas.Pixels[X,Y] := clWhite; // die transparenten Pixels werden im Ziel-Bitmap weiß!
  end;
...
Aufruf und Anzeigen der-Ikone/des-Bitmaps, z.B.:

Image1.Picture.Bitmap := IconToBitmap(Application.Icon.Handle);
Wenn du die Ikone nur auf einem Bitmap anzeigen möchtest, ohne die Icon-bmMask danach wirklich noch zu benötigen, dann könnte man statt der Proc "IconToBitmap" einfacherweise auch die ApiFunktion "DrawIcon" benutzen:

Delphi-Quellcode:
DrawIcon(ABitmap.Canvas.Handle,0,0,Application.Icon.Handle);
Image1.Picture.Bitmap := ABitmap;
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz