Вы можете использовать WritableBitmap
для этого, затем вы можете использовать BitmapEncoder
для кодирования изображения и его сохранения.
var bitmap = new WriteableBitmap(100, 100, 96, 96, PixelFormats.Pbgra32, null);
var rect = new Int32Rect(0, 0, 100, 100);
var channelCount = 4;
var pixels = new byte[100 * 100 * channelCount];
for (int i = 0; i < 100 * 100 * channelCount; i+=channelCount)
{
pixels[i + 2] = (byte)255; // Set red channel
pixels[i + 3] = (byte)255; // Set alpha channel
}
bitmap.WritePixels(rect, pixels, channelCount * 100, 0);
var encoder = new PngBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(bitmap));
using (var stream = new FileStream(@"C:\Users\Public\Test.png", FileMode.Create))
{
encoder.Save(stream);
}