![]() |
[Andorra] Ziel: Pixel auf einem Image einer Sprite verändern
Hallo allerseits,
Ich möchte, je nach bedarf, das Bild auf meiner ImageSprite heller machen bzw. erstmal einfachnur verändern. Der Plan: Das Bild erstamls in einem TAd2dBitmap speichern, und dann willkürlich alle pixel blau färben, anschließend das TAd2dBitmap wieder dem Bild der ImageSprite zuweisen. Das sieht also so aus:
Delphi-Quellcode:
leider geht das so nicht. Mein ImageSprite verschwindet einfach.
procedure TMiniWabe.SetImageBrightness( aMiniWabe: TMiniWabe; aProzentValue: double);
var AdBmp: TAd2dBitmap; x,y: integer; oldColour: TAndorraColor; begin adBmp:= TAd2DBitmap.Create; aMiniWabe.image.Texture.Texture.SaveToBitmap(adBmp); for y:= 0 to aMiniWabe.image.Height - 1 do begin for x := 0 to aMiniWabe.IMage.Width - 1 do begin oldcolour:=adbmp.Pixels[x,y]; oldcolour:= AD_ARGB( 100, 0, 0, 100); adBmp.Pixels[x,y]:= oldcolour; end; end; aMiniWabe.image.Texture.Texture.LoadFromBitmap(adBmp, ad32Bit); AdBmp.Free; end; Kann man das so überhaupt machen oder ist der Ansatz falsch? MfG Spiderpig |
Re: [Andorra] Ziel: Pixel auf einem Image einer Sprite verän
Erst mal Speicher für das Bitmap reservieren:
Delphi-Quellcode:
Geht leider nicht anders, da sonst der Speicher im Context der DLL reserviert werden würde und von der Anwendung nicht darauf zugegriffen werden kann.
adBmp:= TAd2DBitmap.Create;
with aMiniWabe.image.Texture do begin adBmp.ReserveMemory(Width, Height); Texture.SaveToBitmap(adBmp); end; So sollte es aber gehen. |
Re: [Andorra] Ziel: Pixel auf einem Image einer Sprite verän
Geht einwandfrei
(Eine Sache stimmte aber nicht: statt aMiniWabe.image.Texture.width muss aMiniWabe.image.width) Großes Danke, Spiderpig |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:36 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