AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi [Andorra] Ziel: Pixel auf einem Image einer Sprite verändern
Thema durchsuchen
Ansicht
Themen-Optionen

[Andorra] Ziel: Pixel auf einem Image einer Sprite verändern

Ein Thema von Spiderpig_GER_15 · begonnen am 18. Jul 2009 · letzter Beitrag vom 18. Jul 2009
Antwort Antwort
Benutzerbild von Spiderpig_GER_15
Spiderpig_GER_15

Registriert seit: 17. Mär 2008
298 Beiträge
 
Delphi 7 Personal
 
#1

[Andorra] Ziel: Pixel auf einem Image einer Sprite verändern

  Alt 18. Jul 2009, 20:46
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
---Zufall ist das Inkognito Gottes---
  Mit Zitat antworten Zitat
Benutzerbild von igel457
igel457

Registriert seit: 31. Aug 2005
1.622 Beiträge
 
FreePascal / Lazarus
 
#2

Re: [Andorra] Ziel: Pixel auf einem Image einer Sprite verän

  Alt 18. Jul 2009, 22:28
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.
Andreas
"Sollen sich auch alle schämen, die gedankenlos sich der Wunder der Wissenschaft und Technik bedienen, und nicht mehr davon geistig erfasst haben als die Kuh von der Botanik der Pflanzen, die sie mit Wohlbehagen frisst." - Albert Einstein
  Mit Zitat antworten Zitat
Benutzerbild von Spiderpig_GER_15
Spiderpig_GER_15

Registriert seit: 17. Mär 2008
298 Beiträge
 
Delphi 7 Personal
 
#3

Re: [Andorra] Ziel: Pixel auf einem Image einer Sprite verän

  Alt 18. Jul 2009, 23:02
Geht einwandfrei

(Eine Sache stimmte aber nicht: statt aMiniWabe.image.Texture.width muss aMiniWabe.image.width)


Großes Danke,

Spiderpig
---Zufall ist das Inkognito Gottes---
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:18 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