Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi gesichertes Bitmap: weissen Hintergrund entfernen (https://www.delphipraxis.net/108624-gesichertes-bitmap-weissen-hintergrund-entfernen.html)

Helmi 16. Feb 2008 21:41


gesichertes Bitmap: weissen Hintergrund entfernen
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo,

im Anhang sind 2 Bilder. Ein Icon und ein Bitmap.

Wie man sieht, ist auf dem Bitmap der Hintergrund weiss.
Wie bekomm ich diesen weissen Hintergrund weg?

Hier die Codes zum Auslesen von Icon und Bitmap.

Icon
Delphi-Quellcode:
 var
  IconIndex : Word;
  h        : hIcon;

begin
  //Variablen initialisieren
  IconIndex := 0;

    //OpenDialog öffnen
    If OpenDialog1.Execute then
      begin
        //Icon auslesen
        h := ExtractIcon(0, PAnsiChar(OpenDialog1.FileName), IconIndex);

        //Icon im Image anzeigen
        Image1.Picture.Icon.Handle := h;
        Image1.Picture.Icon.SaveToFile('d:\Excel.ico');
      end;
end;
Bitmap
Delphi-Quellcode:
 var
  IconIndex : Word;
  h        : hIcon;
  Bitmap   : TBitmap;
  Icon     : TIcon;

begin
  //Variablen initialisieren
  IconIndex := 0;

  // 
  Bitmap   := TBitmap.Create;
  Icon     := TIcon.Create;

  try
    //OpenDialog öffnen
    If OpenDialog1.Execute then
      begin
        //Icon auslesen
        h := ExtractIcon(0, PAnsiChar(OpenDialog1.FileName), IconIndex);

        Icon.Handle := h;

        with Bitmap do
          begin
            Height := Icon.Height;
            Width := Icon.Width;
            Canvas.Draw(0, 0, Icon);
          end;

        Image1.Picture.Bitmap := Bitmap;
        Image1.Picture.Bitmap.SaveToFile('d:\excel.bmp');
      end;
  finally
    // 
    FreeAndNil(Bitmap);
    FreeAndNil(Icon);
  end;
end;

Mit dem OpenDialog wird eine Exe ausgewählt - in meinem Test die Excel.exe

olee 16. Feb 2008 21:52

Re: gesichertes Bitmap: weissen Hintergrund entfernen
 
ganz einfach:

Delphi-Quellcode:
with bitmap do
begin
  transparent := true;
  transparentcolor := clwhite;
  Canvas.Draw(0,0,bitmap);
end;
Oder bei nem Objekt von TImage
Delphi-Quellcode:
  Image1.Transparent := true
Simpel oder nicht?

EINFACh MAL DELFI HILFE SUCHEN :thumb:

Helmi 16. Feb 2008 22:05

Re: gesichertes Bitmap: weissen Hintergrund entfernen
 
Zitat:

Zitat von olee
EINFACh MAL DELFI HILFE SUCHEN

Wenn belehren, dann bitte richtig!
Delphi ohne "ph" tut ja weh!

olee 16. Feb 2008 22:51

Re: gesichertes Bitmap: weissen Hintergrund entfernen
 
Tschuldigung ... :duck:

war ein Versehen.

Das passiert mir immer wieder.

Helmi 16. Feb 2008 22:58

Re: gesichertes Bitmap: weissen Hintergrund entfernen
 
Und das mit der Transparenz und dem weissen Hintergrund funktioniert nicht.

turboPASCAL 16. Feb 2008 23:00

Re: gesichertes Bitmap: weissen Hintergrund entfernen
 
Das Thema war vor ein paar Tagen, such mal bitte im Forum.

So, ich habe mal gesucht: http://www.delphipraxis.net/internal...t.php?t=127880

olee 17. Feb 2008 00:13

Re: gesichertes Bitmap: weissen Hintergrund entfernen
 
Wieso soll das für ein Bitmap nicht gehen?

Image.Picture.Bitmap.Transparent := true

oder ist das bild unscharf und hat am rand nur fast weiße pixel?


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:46 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz