Рендеринг пользовательского контроля к изображению в MediaLibrary - PullRequest
1 голос
/ 13 сентября 2011
private void SaveAsPicture_Click(object sender, RoutedEventArgs e)
{
    WriteableBitmap bmp = new WriteableBitmap(MyUIElement, null);
    var library = new MediaLibrary();
    MemoryStream stream = new MemoryStream();
    bmp.SaveJpeg(stream, 100, 100, 0, 90);
    library.SavePicture("Certificate", stream);
}

Это должно сохранить рендеринг MyUIElement в bmp, а затем сохранить его как Jpeg в медиалибра, но я получаю value does not fall within expected range ошибку в строке с library.SavePicture("Certificate", stream);

Anyидеи?

1 Ответ

0 голосов
/ 29 июня 2012

У меня та же ошибка, что и у вас.И я решил эту проблему, следуя примеру на Как: кодировать JPEG для Windows Phone и сохранить в библиотеке изображений на MSDN .

Поэтому ваш метод должен выглядеть следующим образом

private void SaveAsPicture_Click(object sender, RoutedEventArgs e)
{
    WriteableBitmap bmp = new WriteableBitmap(MyUIElement, null);
    library.SavePicture("Certificate", stream);
    String tempJPEG = "TempJPEG";

    // Create a virtual store and file stream. Check for duplicate tempJPEG files.
    var myStore = IsolatedStorageFile.GetUserStoreForApplication();
    if (myStore.FileExists(tempJPEG))
    {
        myStore.DeleteFile(tempJPEG);
    }

    IsolatedStorageFileStream myFileStream = myStore.CreateFile(tempJPEG);

    bmp.SaveJpeg(myFileStream, wb.PixelWidth, wb.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(tempJPEG, FileMode.Open, FileAccess.Read);

    // Save the image to the camera roll or saved pictures album.
    MediaLibrary library = new MediaLibrary();

        // Save the image to the camera roll album.
    library.SavePicture("Certificate", myFileStream);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...