Я пытаюсь рисовать линии на графике, который я сохранил в виде массива байтов, а затем сохранить как jpg в своем универсальном приложении Windows 10.
У меня есть байт [], который я преобразовал в растровое изображение, чтобы получить размер пикселя, используя
BitmapImage bImage;
using (InMemoryRandomAccessStream ms = new InMemoryRandomAccessStream())
{
using (DataWriter writer = new DataWriter(ms.GetOutputStreamAt(0)))
{
writer.WriteBytes(myByteArray);
await writer.StoreAsync();
}
bImage = new BitmapImage();
bImage.SetSource(ms);
}
Затем я создал записываемый битмап, используя
WriteableBitmap writeableBmp = BitmapFactory.New(bImage.PixelWidth, bImage.PixelHeight).FromByteArray(myByteArray);
Затем я рисую линию на графике
writeableBmp.DrawLine(10, 10, 200, 10, Colors.Black);
а потом сохранить как jpg
var file = await ApplicationData.Current.LocalFolder.CreateFileAsync("graphic.jpg");
using (var storageStream = await file.OpenAsync(FileAccessMode.ReadWrite))
{
var encoder = await BitmapEncoder.CreateAsync(BitmapEncoder.JpegEncoderId, storageStream);
var pixelStream = writeableBmp.PixelBuffer.AsStream();
var pixels = new byte[pixelStream.Length];
await pixelStream.ReadAsync(pixels, 0, pixels.Length);
encoder.SetPixelData(BitmapPixelFormat.Bgra8, BitmapAlphaMode.Ignore, (uint)writeableBmp.PixelWidth, (uint)writeableBmp.PixelHeight, 48, 48, pixels);
await encoder.FlushAsync();
}
к сожалению, полученное изображение представляет собой тонкую горизонтальную линию цветов. Исходное изображение потеряно, и черная линия не отображается.
Я новичок в графическом программировании, и фрагменты кода в основном представляют собой просто кусочки, которые я собрал из разных источников.
Любая помощь приветствуется.