2010-11-10 12 views

Respuesta

5

En el teléfono, puede usar HttbWebRequest (se recomienda para evitar el impacto de la IU) o WebClient según el proyecto que publiqué aquí.

WebClient, HttpWebRequest and the UI Thread on Windows Phone 7

, entonces puede tomar su flujo y pasarlo en algo de esta forma para escribirlo en el almacenamiento aislado.

private void PicToIsoStore(Stream pic) { 
    using (var isoStore = IsolatedStorageFile.GetUserStoreForApplication()) { 
     var bi = new BitmapImage(); 
     bi.SetSource(pic); 
     var wb = new WriteableBitmap(bi); 
     using (var isoFileStream = isoStore.CreateFile("somepic.jpg")) { 
      var width = wb.PixelWidth; 
      var height = wb.PixelHeight; 
      Extensions.SaveJpeg(wb, isoFileStream, width, height, 0, 100); 
     } 
    } 
} 

Jon es correcto, también puedes usar MediaLibrary.SavePicture. Tenga en cuenta que esto pondría las fotos mezcladas con las fotos de los usuarios en Picture Hub.

Esto es tan sencillo como

private void PicToMediaLibary(Stream pic) { 
    MediaLibrary lib = new MediaLibrary(); 
    lib.SavePicture("blah", pic); 
} 

almacenarlo en el almacenamiento aislado es, básicamente, las aplicaciones del sistema de archivos privados.

6

Puede descargarlos usando WebClient o WebRequest para obtener los bytes sin procesar.

Puede guardarlo fácilmente en isolated storage, pero no creo que pueda guardarlo en ningún lugar visto por Picture hub, si eso es lo que estaba buscando. (No puedo ver nada en el Microsoft.Phone.Tasks namespace que sea pertinente Hay tareas para capturar la cámara de elegir una foto, pero no para guardar uno..)

EDIT: Oh, acabo Encontró un camino. Puedes usar la clase MediaLibrary y su método SavePicture ... aunque eso está en XNA, así que al menos tengo preocupaciones sobre esto trabajando desde una aplicación Silverlight. Sé que algunos bits de XNA API hacen funcionan desde Silverlight, y otros no. Vale la pena experimentar con.

+1

Sí, quería guardarlo en una ubicación similar a Androids Gallery, una ubicación o una carpeta. – Landmine

+0

@Landmine: Ver mi edición. * Puede * ser la respuesta. –

+0

Confirmo que la clase MediaLibrary de la API XNA funciona bastante bien. Solo se necesita una referencia al ensamblado Microsoft.Xna.Framework. –

Cuestiones relacionadas