2011-09-28 4 views
1

Pourquoi ce code lève InvalidOperationException aucun metter si je suis connecté à PC ou non?Windows Phone - SavePicture - InvalidOperationException

MemoryStream ms = new MemoryStream(); 
picture.SaveAsJpeg(ms, 480, 800); 
ms.Seek(0, SeekOrigin.Begin); 
MediaLibrary l = new MediaLibrary(); 
l.SavePicture("test11", ms); 
l.Dispose(); 
ms.Dispose(); 

J'utilise WP7 RC Outils et XNA image est une instance Texture2D

Répondre

1

Juste résolu le problème.

j'oublié que je l'ai joué avec des autorisations (fichier manifeste), et supprimé cette autorisation accidentaly

<Capability Name="ID_CAP_MEDIALIB" /> 
0

trouvé cet exemple ici: How to: Encode a JPEG for Windows Phone and Save to the Pictures Library

espérons qu'il aide, il économise le courant dans le IsolatedStorage premier chargement puis de là et l'enregistrement dans la MediaLibrary à la fin ...

private void btnSave_Click(object sender, RoutedEventArgs e) 
{ 
    // Create a file name for the JPEG file in isolated storage. 
    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); 


    // Create a stream out of the sample JPEG file. 
    // For [Application Name] in the URI, use the project name that you entered 
    // in the previous steps. Also, TestImage.jpg is an example; 
    // you must enter your JPEG file name if it is different. 
    StreamResourceInfo sri = null; 
    Uri uri = new Uri("[Application Name];component/TestImage.jpg", UriKind.Relative); 
    sri = Application.GetResourceStream(uri); 

    // Create a new WriteableBitmap object and set it to the JPEG stream. 
    BitmapImage bitmap = new BitmapImage(); 
    bitmap.CreateOptions = BitmapCreateOptions.None; 
    bitmap.SetSource(sri.Stream); 
    WriteableBitmap wb = new WriteableBitmap(bitmap); 

    // Encode the WriteableBitmap object to a JPEG stream. 
    wb.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(); 

    if (radioButtonCameraRoll.IsChecked == true) 
    { 
     // Save the image to the camera roll album. 
     Picture pic = library.SavePictureToCameraRoll("SavedPicture.jpg", myFileStream); 
     MessageBox.Show("Image saved to camera roll album"); 
    } 
    else 
    { 
     // Save the image to the saved pictures album. 
     Picture pic = library.SavePicture("SavedPicture.jpg", myFileStream); 
     MessageBox.Show("Image saved to saved pictures album"); 
    } 

    myFileStream.Close(); 
} 
+0

Thx pour l'aide, mais ce ne fut pas un problème. – EOG