2012-12-21 57 views
0

我构建了一个应用程序,允许用户捕捉图像,然后将其保存到隔离存储和手机的媒体库中。MediaLibrary.SavePicture以降低分辨率保存图片流

当我将这两张图片下载到我的电脑时,我发现保存在独立存储中的图片的分辨率为2592x1944像素和262 dpi,而保存在媒体库中的图像为1222x1630和72 dpi。我无法解释为什么会发生这种情况。我相关的代码隐藏是:

//Save image to isolated storage 
Extensions.SaveJpeg(wb, fileStream, wb.PixelWidth, wb.PixelHeight, 0, 85); 

//Save image to Media Library 
MediaLibrary medialibrary = new MediaLibrary(); 
medialibrary.SavePicture(imageName, e.ChosenPhoto;); 

(WB是从e.ChosenPhoto创建WritableBitmap)

回答

0

我认为它有事情做与来自ChosenPhoto保存它,而不是从WriteableBitmap的。尝试将图片保存到媒体库from Isolated Storage instead like this

// Encode WriteableBitmap object to a JPEG stream. 
Extensions.SaveJpeg(wb, fileStream, wb.PixelWidth, wb.PixelHeight, 0, 85); 
fileStream.Close(); 

// Create a new stream from isolated storage, and save the JPEG file to the media library on Windows Phone. 
fileStream = store.OpenFile(tempJPEG, FileMode.Open, FileAccess.Read); 

MediaLibrary mediaLibrary = new MediaLibrary(); 
Picture pic = mediaLibrary.SavePicture("savedflimage.jpg", fileStream); 
fileStream.Close(); 
+0

我实现了这个,发生的事情是来自媒体库的图像仍然是1222x1630,但dpi的改进是:165 dpi。奇怪,不是吗? – Icarus