Как я могу скачать и сохранить изображения из Интернета? - PullRequest
5 голосов
/ 10 ноября 2010

Я пытаюсь создать приложение для Windows Phone 7, которое будет сохранять некоторые изображения из Интернета, я понятия не имею, где я могу или могу ли я сохранить изображения из Интернета на телефон.

Чтоя могу сделать, чтобы сохранить изображения?

Ответы [ 2 ]

6 голосов
/ 10 ноября 2010

Вы можете загрузить их, используя WebClient или WebRequest, чтобы получить необработанные байты.

Затем вы можете довольно легко сохранить в изолированное хранилище - но я не верю, что вы можете сохранить в любом месте, видимом в Picture Hub, если вы к этому стремились. (В области имен Microsoft.Phone.Tasks я не вижу ничего подходящего. Существуют задачи для захвата камеры , выберите фотографию, но не сохранить один.)

РЕДАКТИРОВАТЬ: Ох, я только что нашел способ. Вы можете использовать класс MediaLibrary и его метод SavePicture ... хотя это в XNA, так что я бы по крайней мере высказал опасения о его работе с Silverlight приложение. Я знаю, что некоторые части XNA API do работают от Silverlight, а некоторые нет. Стоит поэкспериментировать с.

5 голосов
/ 10 ноября 2010

На телефоне вы можете использовать HttbWebRequest (рекомендуется во избежание влияния пользовательского интерфейса) или WebClient для проекта, который я разместил здесь.

WebClient, HttpWebRequest и поток пользовательского интерфейса на Windows Phone 7

Затем вы можете взять свой поток и передать его в нечто вроде этой формы, чтобы записать его в изолированное хранилище.

private void PicToIsoStore(Stream pic) {
    using (var isoStore = IsolatedStorageFile.GetUserStoreForApplication()) {
        var bi = new BitmapImage();
        bi.SetSource(pic);
        var wb = new WriteableBitmap(bi);
        using (var isoFileStream = isoStore.CreateFile("somepic.jpg")) {
            var width = wb.PixelWidth;
            var height = wb.PixelHeight;
            Extensions.SaveJpeg(wb, isoFileStream, width, height, 0, 100);
        }
    }
}

Джон прав, вы также можете использовать MediaLibrary.SavePicture. Имейте в виду, что это смешивает фотографии с фотографиями пользователей в Picture Hub.

Это так же просто, как и

private void PicToMediaLibary(Stream pic) {
     MediaLibrary lib = new MediaLibrary();
     lib.SavePicture("blah", pic);
}

Хранение в изолированном хранилище - это, в основном, личная файловая система вашего приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...