TWICImage: Как наложить прозрачный PNG на JPG?

Например, у нас есть базовое изображение в формате jpg:
база JPG база JPG
И наложение изображения в формате PNG:
прозрачный png прозрачный 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;

1 ответ

Решение

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

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

Другие вопросы по тегам