Сохранение изображения в медиатеку в 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);
Другие вопросы по тегам