在WP7中,CameraCaptureTask仅返回分辨率为1296x972的照片。

4

我正在使用CameraCaptureTask选择器,但始终返回比原始照片小的照片。相机具有2592x1944的分辨率,但返回的照片始终为1296x972。我正在使用LG E-900手机。

有什么想法?

2个回答

2

你说得对,应用程序无法指定要使用哪个分辨率来拍照,但问题是为什么返回的图像比用户选择的捕获分辨率小。我认为这个问题是由于BitmapImages自动调整图片大小小于2000x2000(请参见我的答案)。 - Greg Bray

2
任何在 Windows Phone 上加载到 BitmapImage 对象中的 JPG 或 PNG 图像文件都会自动 重新调整大小为小于2000x2000,以减少显示图像所使用的内部内存。如果您必须以更高的分辨率访问图像,则需要访问原始字节流(例如完成事件中的 e.ChosenPhoto),然后将其加载到 System.Windows.Media.Imaging.WriteableBitmap 对象中。
问题在于,您可能需要知道图像的原始大小,因为WriteableBitmap在其构造函数中需要一个大小和宽度,并且会自动重新调整您尝试加载到其中的图像的大小。我认为加载高分辨率图像以其原始大小的唯一方法是使用ExifLib检测原始高度和宽度的字节流,然后创建一个具有该大小的WriteableBitmap,并使用System.Windows.Media.Imaging-Extensions.LoadJpeg方法将图像加载到对象中。有关更多图像加载示例,请参阅此关于在Windows Phone上调整图像大小的问题。

非常好的回答,Greg! 谢谢。 - Alex Troto

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接