Открытие файла изображения в WritableBitmap - PullRequest
3 голосов
/ 23 ноября 2010

Вот проблема. Я хочу открыть файл с локальных дисков, а затем сделать его в WritableBitmap, чтобы я мог редактировать его. Но проблема в том, что я не могу создать WritableBitmap из Uri или что-то в этом роде. Также я знаю, как открыть файл в BitmapImage, но я не могу понять, как открыть файл как WritableBitmap. Есть ли способ открыть файл непосредственно в WritableBitmap, если нет, есть ли способ конвертировать BitmapImage в WritableBitmap? Спасибо, ребята.

Ответы [ 3 ]

4 голосов
/ 23 ноября 2010

Вы можете загрузить файл изображения в BitmapImage и использовать его в качестве источника для WriteableBitmap :

BitmapImage bitmap = new BitmapImage(new Uri("YourImage.jpg", UriKind.Relative));
WriteableBitmap writeableBitmap = new WriteableBitmap(bitmap);
1 голос
/ 23 ноября 2010

Я не эксперт, и у меня нет немедленного доступа к интеллигенции и еще много чего, но здесь идет ...

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

Даже если это не идеальный пример, этого должно быть достаточно, чтобы указать вам правильное направление. Надеюсь, что так.

0 голосов
/ 16 июля 2015

В 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);

установка нового Uri дала мне ошибку (ссылка на объект не установлена ​​на экземпляр объекта) при попытке создать WriteableBitmap

...