从图像文件路径创建图像,逐个像素地修改,然后保存在UWP应用程序中的最佳方法是什么?

时间:2017-12-14 02:35:29

标签: uwp uwp-xaml

从文件路径创建位图图像,操作每个像素,然后保存图像的最佳方法是什么?

我在WritableBitMap中探讨了Windows.UI.Xaml.Media.Imaging以及通过Nuget提供的WritableBitmapEx扩展但是,

var displayPhoto = new WriteableBitmap(10, 10);
displayPhoto.SetSource(await storageFile.OpenAsync(FileAccessMode.Read));
var targetPixel = displayPhoto.GetPixel(x, t);

给我一​​个错误,说我要访问受保护的内存。将文件openmode更改为ReadWrite没有帮助,并且给我一个"文件是readonly"的错误,而我检查了图像文件的属性,写入已启用。

1 个答案:

答案 0 :(得分:0)

  

给我一​​个错误,说我想访问受保护的内存。

问题是您的WriteableBitmap太小而无法存储所有数据。根据您的要求,您可以使用原始图片宽度和高度创建WriteableBitmap

var tem = new BitmapImage();
await tem.SetSourceAsync(await file.OpenAsync(Windows.Storage.FileAccessMode.Read));

var displayPhoto = new WriteableBitmap(tem.PixelWidth, tem.PixelHeight);
displayPhoto.SetSource(await file.OpenAsync(Windows.Storage.FileAccessMode.Read));
var targetPixel = displayPhoto.GetPixel(x,s);