Opening an image file into WritableBitmap

倖福魔咒の 提交于 2020-01-14 13:43:26

问题


Here is the problem. I want to open a file from local drives, then make it into a WritableBitmap so i can edit it. But the problem is, i cannot create a WritableBitmap from Uri or something like that. Also i know how to open a file into BitmapImage but i cannot figure out how to open a file as WritableBitmap. Is there way to open a file directly into a WritableBitmap,if there is not, is there a way to convert a BitmapImage to a WritableBitmap? Thanks guys.


回答1:


You can load your image file into a BitmapImage and use that as a source for your WriteableBitmap:

BitmapImage bitmap = new BitmapImage(new Uri("YourImage.jpg", UriKind.Relative));
WriteableBitmap writeableBitmap = new WriteableBitmap(bitmap);



回答2:


I'm no expert and don't have immediate access to intellisense and whatnot, but here goes...

var fileBytes = File.ReadAllBytes(fileName);
var stream = new MemoryStream(fileBytes);
var bitmap = new BitmapImage(stream);
var writeableBitmap = new WritableBitmap(bitmap);

Even if not a perfect example this should be enough to point you in the right direction. Hope so.




回答3:


In Silverlight 5 you can use below method to open file from local disk and convert it to BitmapImage and make it in to 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);

setting new Uri gave me error (Object reference not set to an instance of an object) while trying to create WriteableBitmap



来源:https://stackoverflow.com/questions/4254225/opening-an-image-file-into-writablebitmap

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!