![]() |
GDI+ GDIPOBJ PNG Farbraum
Hallo, ich habe ein kleines Problem mit PNG die ich mit Delphi und GDI+ (GDIPOBJ) zeichnen lassen möchte und zwar zeigt er mir in dem gezeichneten Bild kein weiss an, sondern ändert die Farbe in ein sehr helles grau.
mein simplester Code
Delphi-Quellcode:
Ich vermute das er irgendwie irgendwo einen Farbraum definiton oder co hat, aber egal wie ich das PNG abspeichere das graue statt weiss bleibt.
procedure TForm27.Button3Click(Sender: TObject);
var FStream : TMemoryStream; SA : TStreamAdapter; FImage : TGPImage; Graphs : TGPGraphics; begin FStream := TMemoryStream.Create; FStream.LoadFromFile('d:\test.png'); FStream.Position := 0; SA := TStreamAdapter.Create(FStream, soReference); FImage := TGPImage.Create(SA, TRUE); //FImage := TGPImage.Create(SA, FALSE); PAintBox1.Canvas.Brush.Color := clWhite; PAintBox1.Canvas.FillREct(REct(0,0,200,200)); Graphs := TGPGraphics.Create(PaintBox1.Canvas.Handle); Graphs.DrawImage(fImage, 10, 10); Graphs.Free; fImage.Free; fStream.Free; end; Hat noch wer Tipps was ich da testen kann? |
AW: GDI+ GDIPOBJ PNG Farbraum
Zitat:
Delphi-Quellcode:
einen Unterschied?#
TGPImage.Create(SA, Bool(True));
//edit vielleicht stimmt auch das pixelformat von source und target nicht überein? |
AW: GDI+ GDIPOBJ PNG Farbraum
also das BOOL(TRUE) macht keinen unterschied...
wie kann ich das mit dem Pixelformat prüfen? beim TGPImage kann ich mir das Pixelformat ja ansehen aber beim TGPGraphics finde ich da nichts dazu |
AW: GDI+ GDIPOBJ PNG Farbraum
was allerdings auch komisch ist wenn ich mir mit
Delphi-Quellcode:
das PixelFormat ausgeben lasse, dann wird das Bild NICHT gezeichnet
memo1.Lines.Add('FImage.PixelFormat : '+IntToStr(FImage.GetPixelFormat));
Graphs.DrawImage(fImage, 10, 10); mit
Delphi-Quellcode:
funktioniert es ganz normal
Graphs.DrawImage(fImage, 10, 10);
memo1.Lines.Add('FImage.PixelFormat : '+IntToStr(FImage.GetPixelFormat)); |
AW: GDI+ GDIPOBJ PNG Farbraum
Vielleicht kannst Du Dir das eine oder andere aus
![]() Der Quelltext dort samt erster Lösung schaut für mich gut nachvollziehbar aus, Schwerpunkt "Alpha-Kanal" (was bei Dir wahrscheinlich nicht klappt momentan) |
AW: GDI+ GDIPOBJ PNG Farbraum
werde ich mir anschauen, aber mein PNG ist eigentlich nur TrueColor OHNE Alpha Kanal das ist ja das komische
sobald ich das PNG als Palette mit 256 Farben speicher dann passt es. [edit] leider hats nicht geholfen, da wie gesagt es kein Problem mit dem Alphakanal ist sondern mit der Farbe weiss bzw mit hellen Farben. Der Pixelformat vom TGPImage ist auf jeden Fall PixelFormat32bppARGB, aber verfälschen tut er mir die Farbe $ffffff |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:14 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