К сожалению, синтаксис для этого с ImageSharp меняется между текущей предварительной версией и версией разработки, которая должна быть окончательным API для этого.
С 1.0.0-beta0005 , вы можете смешать эти изображения следующим образом:
using (var pattern = Image.Load("img_pattern.png"))
using (var texture = Image.Load("img_texture.png"))
{
var options = new GraphicsOptions { BlenderMode = PixelBlenderMode.In };
using (var result = pattern.Clone(x => x.DrawImage(options, texture)))
{
result.Save("img_out.png");
}
}
Обратите внимание, что для этого вы должны использовать изображение шаблона с альфа-прозрачностью.Вы не можете использовать прозрачность с помощью клавиш (по крайней мере, с этим решением).
Я сделал шаблон прозрачным для этой цели (вы можете получить тот, который я использовал здесь ) и получил эторезультат:
![Result image](https://i.stack.imgur.com/crMoJ.png)
В финальной версии это будет выглядеть так:
using (var pattern = Image.Load("img_pattern.png"))
using (var texture = Image.Load("img_texture.png"))
{
var options = new GraphicsOptions { AlphaCompositionMode = PixelAlphaCompositionMode.SrcIn };
using (var result = pattern.Clone(x => x.DrawImage(texture, options)))
{
result.Save("img_out.png");
}
}
Хороший способ понять это, кстати.это посмотреть на PorterDuffCompositorTests
файл , который содержит тесты для этой функции и поэтому всегда будет отражать текущий API.