从文件路径创建位图图像,操作每个像素,然后保存图像的最佳方法是什么?
我在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"的错误,而我检查了图像文件的属性,写入已启用。
答案 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);