Hi Sebastian!
Also ich habe mal Deinen Code probiert, bin aber leider gescheitert.
Delphi-Quellcode:
procedure foo(bSource, bDest: TBitmap); //Der Schatten ist die Quelle, die Textur das Ziel
var pSource, pDest: PRGBQuad;
begin
bSource.PixelFormat:=pf32bit;
bDest.PixelFormat:=pf32bit;
pDest^.rgbRed := pDest^.rgbRed-(255-pSource^.rgbRed);
pDest^.rgbBlue := pDest^.rgbBlue-(255-pSource^.rgbBlue);
pDest^.rgbGreen := pDest^.rgbGreen-(255-pSource^.rgbGreen);
// Wenn der Pixel in der Schatten-Bitmap weiß ist, wird an bSource nichts verändert, sonst eben dunkler
end;
Also ich habe Deine Prozedur nun etwas vervollständigt. Sollte bestimmt eine kleine Aufgabe für mich sein. Ich rufe nun diese Prozedure wie folgt auf.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
MyBit:TBitmap;
begin
myBit:=TBitmap.Create;
MyBit.Assign(Image.Picture.Graphic);
foo(MyBit,Image1.Picture.Bitmap);
end;
In Image befindet sich ein Jpeg, deshalb weise ich es vorher noch einem Bitmap zu. Allerdings tut sich in dest - dem Image1 nichts. Wie auch. Ich glaube, dass in der foo-procedure noch nichts zurückgeschrieben wird. Oder??? Kannst Du noch etwas helfen?