Как нарисовать изображение на другом изображении?
Вы можете использовать библиотеку Win2D для рисования изображения с отступами. Если вы использовали SoftwareBitmap
в качестве источника, попробуйте сначала преобразовать его в файл, и вы можете обратиться к этому документу .
Нам нужно сделать Win2D CanvasRenderTarget
и установите его ширину как image width + 2 * padding width
. Затем используйте CanvasRenderTarget
, чтобы создать DrawingSession
и нарисуйте свое изображение. Для получения дополнительной информации см. Следующий код.
// file parameter is the image file
using (var stream = await file.OpenAsync(FileAccessMode.Read))
{ //padding width
float padding = 30;
var device = new CanvasDevice();
var bitmap = await CanvasBitmap.LoadAsync(device, stream);
var renderer = new CanvasRenderTarget(device,
bitmap.SizeInPixels.Width+ 2*padding,
bitmap.SizeInPixels.Height, bitmap.Dpi);
using (var ds = renderer.CreateDrawingSession())
{ // draw image from point xy = point(padding,0)
ds.DrawImage(bitmap,padding,0);
}
stream.Seek(0);
InMemoryRandomAccessStream randomAccessStream = new InMemoryRandomAccessStream();
await renderer.SaveAsync(randomAccessStream, CanvasBitmapFileFormat.Png);
BitmapDecoder decoder = await BitmapDecoder.CreateAsync(randomAccessStream);
var softwareBitmap = await decoder.GetSoftwareBitmapAsync();
}
Мне нужно скопировать его на новую пустую карту SoftwareBitmap, но я не могу найти способ сделать это.
Вы можете использовать метод CopyTo
, чтобы скопировать текущий SoftwareBitmap в предоставленный объект SoftwareBitmap.