Einzelnen Beitrag anzeigen

Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Zwei transparte bilder verbinden.

  Alt 3. Aug 2006, 14:59
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
  Mit Zitat antworten Zitat