TWICImage: Как наложить прозрачный PNG на JPG? - PullRequest
0 голосов
/ 26 декабря 2018

Например, у нас есть базовое изображение в формате jpg:
base jpg base jpg
И наложение изображения в формате png:
transparent png прозрачное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 голосов
/ 26 декабря 2018

Я ничего не знаю о 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;

Я не могу проверить это сейчас.

...