Thema: Delphi jpg mit png verschmelzen

Einzelnen Beitrag anzeigen

Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#6

Re: jpg mit png verschmelzen

  Alt 22. Jan 2005, 14:39
ist gar nicht so schwer, du musst dir nur vorher überlegen ob schwarz 100% transparenz darstellt oder weiß. Wenn du jetzt schwarz als Transparenz verwendest so musst du bei einem schwarzen pixel gar nichts machen weil ja 100% transparent. Bei einem weißen pixel malst du dasPixel wie es ist auf die Canvas und ansonstne musst du die Farben im Verhältnis mischen (da gibt dann der grauwert an zu welchen teilen gemicht wird)

hier ne funktion um 2 farben zu mischen
Delphi-Quellcode:
function GetBlendColor(Basecolor: TColor; Blendcolor: TColor; BlendIntensity: Byte=127): TColor;
type
  TMyColor = record
    red: Byte;
    green: Byte;
    blue: Byte;
  end;
var LF1, LF2: TMyColor;
begin
  LF1.red := GetRValue(Basecolor);
  LF1.green := GetGValue(Basecolor);
  LF1.blue := GetBValue(Basecolor);

  LF2.red := (LF1.red * (255-BlendIntensity) + GetRValue(Blendcolor) * BlendIntensity) div 255;
  LF2.green := (LF1.green * (255-BlendIntensity) + GetGValue(Blendcolor) * BlendIntensity) div 255;
  LF2.blue := (LF1.blue * (255-BlendIntensity) + GetBValue(Blendcolor) * BlendIntensity) div 255;
  result := rgb(LF2.red, LF2.green, LF2.blue);
end;
Bei blendintensity gibst du den schwarzweiß-wert des pixels an und für die anderen beiden Farben eben die Farben die gemischt werden sollen
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat