Сохранение изображения в медиатеку в Windows Phone 7
Я пытаюсь сохранить изображение из элемента управления изображением с именем image1 на главной странице моего приложения в медиатеку телефона, вот мой код, но в WriteableBitmap wr = image1; это дает мне ошибку.
public void SaveImageTo(string fileName = "Gage.jpg")
{
fileName += ".jpg";
var myStore = IsolatedStorageFile.GetUserStoreForApplication();
if (myStore.FileExists(fileName))
{
myStore.DeleteFile(fileName);
}
IsolatedStorageFileStream myFileStream = myStore.CreateFile(fileName);
WriteableBitmap wr = image1; // give the image source
wr.SaveJpeg(myFileStream, wr.PixelWidth, wr.PixelHeight, 0, 85);
myFileStream.Close();
// Create a new stream from isolated storage, and save the JPEG file to the media library on Windows Phone.
myFileStream = myStore.OpenFile(fileName, FileMode.Open, FileAccess.Read);
MediaLibrary library = new MediaLibrary();
//byte[] buffer = ToByteArray(qrImage);
library.SavePicture(fileName, myFileStream); }
1 ответ
Решение
Вы пытаетесь назначить Control
"image1" к WriteableBitmap
объект, поэтому у вас есть ошибка (они 2 разных типов).
Вы должны инициализировать WriteableBitmap
по-разному, в зависимости от того, как был установлен источник "image1".
Если "image1" ссылается на локальное изображение, вы можете инициализировать соответствующий WriteableBitmap
сюда:
BitmapImage img = new BitmapImage(new Uri(@"images/yourimage.jpg", UriKind.Relative));
img.CreateOptions = BitmapCreateOptions.None;
img.ImageOpened += (s, e) =>
{
WriteableBitmap wr = new WriteableBitmap((BitmapImage)s);
};
Если вы хотите отобразить свой элемент управления Image в WriteableBitmap, вы можете сделать это:
WriteableBitmap wr = new WriteableBitmap(image1, null);