Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi nach StretchBlt schwarzer Hintergrund (https://www.delphipraxis.net/184052-nach-stretchblt-schwarzer-hintergrund.html)

Helmi 22. Feb 2015 16:15

AW: nach StretchBlt schwarzer Hintergrund
 
dann besser mit GUI+ gar nicht erst anfangen sondern gleich auf Graphics32 umsteigen?

Harry Stahl 22. Feb 2015 18:28

AW: nach StretchBlt schwarzer Hintergrund
 
Du kannst hier auch die Windows -Alphablend Funktion verwenden, die kann auch 32-Bit Bitmaps skalieren. Allerdings setzt die Funktion voraus, dass die Pixel dann Pre-multiplied sind.

EWeiss 22. Feb 2015 20:11

AW: nach StretchBlt schwarzer Hintergrund
 
Sieh doch mal ob dir das weiter hilft
http://www.delphipraxis.net/130998-a...-rotation.html

gruss

Helmi 25. Feb 2015 14:23

AW: nach StretchBlt schwarzer Hintergrund
 
ich hab mir jetzt mal Graphics32 angeschaut

hab jetzt aber nur die Möglichkeit gefunden, Bitmaps via TImage32 zu skalieren

Gibt es auch eine Möglichkeit das direkt im Bitmap32 zu machen?

Neutral General 25. Feb 2015 14:33

AW: nach StretchBlt schwarzer Hintergrund
 
Klappt denn dein ursprünglicher Code wenn du Pixelformat auf pf32Bit stellst?
Hab nämlich letztens noch genau das selbe gemacht und das hat funktioniert.

Helmi 25. Feb 2015 14:37

AW: nach StretchBlt schwarzer Hintergrund
 
Zitat:

Zitat von Neutral General (Beitrag 1291490)
Klappt denn dein ursprünglicher Code wenn du Pixelformat auf pf32Bit stellst?
Hab nämlich letztens noch genau das selbe gemacht und das hat funktioniert.

Leider nein

Ich hab alle drei Bitmaps (Bitmap, Temp_Bitmap, Copy_Bitmap) mal testweise auf pf32Bit gesetzt, aber ohne Verbesserung des Problemes

[edit]
Ich glaub ich weiss wo das Problem ist
Der schwarze Hintergrund ist schon im Original-Bitmap vorhanden

Das Original-Bitmap beinhaltet ein Icon

Test-Code:
Delphi-Quellcode:
procedure TForm3.Button2Click(Sender: TObject);
var
  S: String;
  Bitmap: TBitmap;
  Icon: TIcon;

begin
  S := ExtractFilePath(Application.ExeName);

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

  try
//    Bitmap.LoadFromFile(S + 't.bmp');

    Icon.Handle := ExtractIcon(Application.Handle, PChar(Application.ExeName), 0);

    Icon.SaveToFile(S + 'test.ico');

    Bitmap.Assign(Icon);

    Bitmap.SaveToFile(S + 'origtest.bmp');

    Scale_Bitmap(Bitmap, 100, 200, true);

    Bitmap.SaveToFile(S + 'test.bmp');
  finally
    Bitmap.Free;
    Icon.Free;
  end;
end;
Schon origtest.bmp hat den schwarzen Hintergrund

DeddyH 25. Feb 2015 15:11

AW: nach StretchBlt schwarzer Hintergrund
 
Interessanter Artikel: http://parnassus.co/transparent-grap...re-gdi-part-1/, aber ehrlich gesagt wäre GDI+ wohl einfacher.

Helmi 25. Feb 2015 15:16

AW: nach StretchBlt schwarzer Hintergrund
 
Zitat:

Zitat von DeddyH (Beitrag 1291500)
Interessanter Artikel: http://parnassus.co/transparent-grap...re-gdi-part-1/, aber ehrlich gesagt wäre GDI+ wohl einfacher.

Dank dir!

ja - ich tendier auch zu GDI+

Aber wie zukunftssicher ist das?

DeddyH 25. Feb 2015 15:19

AW: nach StretchBlt schwarzer Hintergrund
 
Um das sicher zu erfahren müsstest Du wohl bei Microsoft anfragen.

Neutral General 25. Feb 2015 15:31

AW: nach StretchBlt schwarzer Hintergrund
 
Es gibt doch auch seit ein paar Delphi Versionen (Edit: Seit Delphi2010) ein Direct2D-Canvas was schon direkt mitgeliefert wird. Ist auch nicht schwerer als GDI+ (vllt sogar leichter) und DirectX wird wahrscheinlich so schnell nicht abgeschafft werden ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:15 Uhr.
Seite 2 von 4     12 34      

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