这是问题所在。我想从本地驱动器打开一个文件,然后把它变成一个 WritableBitmap 以便我可以编辑它。但问题是,我无法从 Uri 或类似的东西创建 WritableBitmap。我也知道如何将文件打开到 BitmapImage 中,但我不知道如何将文件打开为 WritableBitmap。有没有办法将文件直接打开到 WritableBitmap,如果没有,有没有办法将 BitmapImage 转换为 WritableBitmap?多谢你们。
问问题
6518 次
3 回答
4
您可以将图像文件加载到BitmapImage中,并将其用作WriteableBitmap的源:
BitmapImage bitmap = new BitmapImage(new Uri("YourImage.jpg", UriKind.Relative));
WriteableBitmap writeableBitmap = new WriteableBitmap(bitmap);
于 2010-11-23T09:00:57.530 回答
1
我不是专家,也无法立即访问智能感知和诸如此类的东西,但是这里......
var fileBytes = File.ReadAllBytes(fileName);
var stream = new MemoryStream(fileBytes);
var bitmap = new BitmapImage(stream);
var writeableBitmap = new WritableBitmap(bitmap);
即使不是一个完美的例子,这也足以为您指明正确的方向。希望如此。
于 2010-11-23T09:00:16.673 回答
0
在 Silverlight 5 中,您可以使用以下方法从本地磁盘打开文件并将其转换为 BitmapImage 并使其进入 WriteableBitmap;
OpenFileDialog dlg = new OpenFileDialog();
dlg.Multiselect = false;
dlg.ShowDialog();
byte[] byteArray = new byte[] { };
if (dlg.File == null) return;
BitmapImage bi = new BitmapImage();
bi.CreateOptions = BitmapCreateOptions.None;
// bi.UriSource = new Uri(@"C:\Users\saw\Desktop\image.jpg", UriKind.RelativeOrAbsolute);
bi.SetSource(dlg.File.OpenRead());
WriteableBitmap eb=new WriteableBitmap(bi);
尝试创建 WriteableBitmap 时设置新的 Uri 给了我错误(对象引用未设置为对象的实例)
于 2015-07-16T04:41:23.953 回答