Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi [Andorra] Ziel: Pixel auf einem Image einer Sprite verändern (https://www.delphipraxis.net/137324-%5Bandorra%5D-ziel-pixel-auf-einem-image-einer-sprite-veraendern.html)

Spiderpig_GER_15 18. Jul 2009 19:46


[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:
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;
leider geht das so nicht. Mein ImageSprite verschwindet einfach.
Kann man das so überhaupt machen oder ist der Ansatz falsch?

MfG

Spiderpig

igel457 18. Jul 2009 21:28

Re: [Andorra] Ziel: Pixel auf einem Image einer Sprite verän
 
Erst mal Speicher für das Bitmap reservieren:
Delphi-Quellcode:
  adBmp:= TAd2DBitmap.Create;
  with aMiniWabe.image.Texture do
  begin
    adBmp.ReserveMemory(Width, Height);
    Texture.SaveToBitmap(adBmp);
  end;
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.

So sollte es aber gehen.

Spiderpig_GER_15 18. Jul 2009 22:02

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 06:38 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