was für bilder genau?
Du könntest es mit Graphics32 (
www.graphics32.org) machen, entweder mit layers, oder indem du einfach das eine auf das andere zeichnest (evtl. musst du da ein paar optionen einschalten).
Ansonsten kannst du das natürlich selber machen:
Delphi-Quellcode:
function Combine(Bottom, Top: TBitmap; alpha:
array of Byte): TBitmap;
var btmptr,topptr,resptr: Pointer;
begin
if length(alpha) < Top.Width * Top.Height
then
raise Exception.Create('
nicht genug alpha!');
Result := TBitmap.Create;
Result.Width := Bottom.Width;
Result.Height := Bottom.Height;
btmptr := Bottom.Scanline[0];
topptr := Top.Scanline[0];
resptr := Result.Scanline[0];
for i := 0
to high(alpha)
do
begin
resptr^ := CombineColors(btmptr^,topptr^,alpha[i]);
Inc(btmptr);
Inc(topptr);
Inc(resptr);
end;
end;
function CombineColors(c1,c2: TColor; fac: Byte): TColor;
begin
Result.Red := Round(c1.Red * (255-fac) / 255 + c2.Red * fac / 255);
//das selbe für grün und blau, und evtl. muss man das erst mal in einen anderen record pressen, damit die felder verfügbar sind
end;
Keine Garantie auf Fehlerfreiheit, höchstwahrscheinlich muss man da noch einiges umcasten.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1