TWICImage:如何在 JPG 上叠加透明 PNG?
TWICImage: How to overlay transparent PNG on JPG?
比如我们有一张jpg格式的底图:
base jpg
以及 png 格式的叠加图像:
transparent png
这张照片是他们合并后我想得到的:
我的问题是:如何使用 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;
我对 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;
我现在无法测试。
比如我们有一张jpg格式的底图:
以及 png 格式的叠加图像:
这张照片是他们合并后我想得到的:
我的问题是:如何使用 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;
我对 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;
我现在无法测试。