Один вариант - наложение двух элементов в сетке, как предложено выше, а затем использование этой техники для визуализации элемента управления в файл растрового изображения.
В качестве альтернативы, вы можете преобразовать оба файла врастровое изображение и зациклите их, используя следующий код (этот код объединяет изображения путем наложения растрового изображения2 на растровое изображение1, предполагая, что любые значения белого цвета в растровом изображении являются значениями прозрачности - вы можете изменить это условие смешивания, изменив одну строку):
Bitmap bitmap1;
Bitmap bitmap2;
Bitmap result;
for(int x = 0; x<bitmap1.Width;x++)
{
for(int y=0; y<bitmap1.Height;y++)
{
//condition for choosing which pixel to pick - based on how you want to overlay them (this code assumes white is transparent)
if(bitmap2.GetPixel(x,y) == Colors.White)
{
result.SetPixel(x,y) = bitmap.GetPixel(x,y);
}
else
{
result.SetPixel(x,y) = bitmap2.GetPixel(x,y);
}
}
}
Это даст вам растровый результат, который вы затем сможете делать с любым, что захотите.
Первый вариант быстрее, так как он ускоряется кодом рендеринга WPF, однако я слышал, что люди изо всех сил пытались заставить рендеринг растрового изображения не выводить сразу в файл, поэтому, если вы хотите, чтобы он был в памятибез повторной загрузки файла это не лучшая ставка.
Второй вариант дает вам гораздо больший контроль над тем, как комбинируются изображения, но потенциально медленнее.