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

person user2015167    schedule 11.02.2013    source источник


Ответы (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);
person Olivier Payen    schedule 11.02.2013