TWICImage:如何在JPG上叠加透明PNG?

时间:2018-12-26 11:11:42

标签: delphi graphics png delphi-10.2-tokyo wic

例如,我们有一个jpg格式的基本图像:
base jpg base jpg
以及png格式的叠加图片:
transparent png transparent png
我想通过合并获得这张图片:
result
我的问题是:如何使用TWICImage的功能获得此结果?
我可以像这样加载两个图像:

function DoMerge: TWICImage;
var
  wicJPG,
  wicPNG: TWICImage;
begin
  wicJPG := TWICImage.Create;
  wicPNG := TWICImage.Create;
  try
    wicJPG.LoadFromFile('base.jpg');
    wicPNG.LoadFromFile('overlay.png');
    Result := wicJPG + wicPNG;  // (pseudo-code) how?
  finally
    wicPNG.Free;
    wicJPG.Free;
  end;
end;

1 个答案:

答案 0 :(得分:3)

除了TWICImage的后代之外,我对TGraphic一无所知。 因此,您可以尝试这样的内容:

var
  B: TBitmap;

B := TBitmap.Create;
try
  B.Assign(wicJPG); 
  B.Canvas.Draw(0, 0, wicPNG);
  Result := TWICImage.Create;
  Result.Assign(B);
finally
  B.Free;
end;

我现在无法测试。