2013-12-01 6 views
0

Я хочу установить изображение, выбранное из библиотеки изображений в качестве фона. Поэтому я беру исходное имя выбранной фотографии в IsolatedStorageSetting. Но позже я не удается получить поток файла из пути .. вот код:Получить поток с пути wp8

bitmapimage.UriSource = new Uri(Settings.BackgroundPhotoUrl, UriKind.Absolute); 
BackgroundImg.ImageSource = bitmapimage; 

Но этот код не работает. Никаких исключений. Только фон черный. Так что я попытался сохранить поток в IsolatedStorageSetting (не Релли нравится это решение !!), но в этом случае я получаю исключение:

Operation denied 

Здесь код:

Settings.MyStream = e.ChosenPhoto 

в конец, я пытался сохранить изображение в изолированном хранилище:

using (System.IO.IsolatedStorage.IsolatedStorageFile isf = System.IO.IsolatedStorage.IsolatedStorageFile.GetUserStoreForApplication()) 
{ 
    isf.CopyFile(e.OriginalFileName, "background" + System.IO.Path.GetExtension(e.OriginalFileName), true); 
} 

Но и в этом случае я получить операцию отказано исключения

Как я могу решить проблему ?? Thanx

ответ

0

Кажется, вы ошибаетесь в потоках. Поток - это указатель на позицию в файле, с которого вы можете читать или писать. Если вы используете фотовыбор, тогда результат даст вам поток к файлу. Вам нужно прочитать байты из потока в потоке и сохранить, а затем - ваше локальное хранилище. Затем вы можете получить доступ к изображению.

В моем приложении Live Countdown я использую класс WriteableBitmap для сохранения Jpeg в поток. Что-то вроде этого:

var store =  
    System.IO.IsolatedStorage.IsolatedStorageFile.GetUserStoreForApplication(); 
var newPath = "MyFileName.png"; 

if (store.FileExists(newPath)) store.DeleteFile(newPath); 

var stream = store.CreateFile(newPath); 

BitmapImage i = new BitmapImage(); 
i.SetSource(photoResult.ChosenPhoto); 
WriteableBitmap imageToSave = new WriteableBitmap(i); 
imageToSave.SaveJpeg(stream, 173, 173, 0, 100); 

stream.Flush(); 
stream.Close(); 

Это своего рода поток. Мне пришлось брать детали из разных функций и объединять их, поскольку приложение позволяет пользователю сначала масштабировать приложение. Существует масштабирование параметров метода SaveJpeg, поскольку я сохраняю изображение для плитки.

Смежные вопросы