【问题标题】:CameraCaptureTask return only pictures with 1296x972 resolution in WP7CameraCaptureTask 在 WP7 中仅返回 1296x972 分辨率的图片
【发布时间】:2011-05-12 06:46:47
【问题描述】:

我正在使用 CameraCaptureTask 选择器,并且总是返回比原始照片更小的照片。相机的分辨率为 2592x1944,但返回的照片始终为 1296x972。我正在使用 LG E-900。 有什么想法吗?

【问题讨论】:

    标签: windows-phone-7 camera resolution photo


    【解决方案1】:

    在 Windows Phone 上加载到 BitmapImage 对象的任何 JPG 或 PNG 图像文件将自动为re-sized to be less than 2000x2000,以减少用于将图像显示到屏幕的内部内存。如果您必须以更高分辨率访问图像,则需要访问原始字节流(例如完成事件中的e.ChosenPhoto),然后将其加载到System.Windows.Media.Imaging.WriteableBitmap 对象中。

    然后问题就变成了您可能需要知道图像的原始大小,因为 WriteableBitmap 将大小和宽度作为其构造函数的一部分,并且会自动重新调整您尝试加载到其中的图像的大小。我相信以原始大小加载高分辨率图像的唯一方法是在字节流上使用ExifLib 来检测原始高度和宽度,然后以该大小创建一个WriteableBitmap 并使用 System.Windows.Media.Imaging - Extensions.LoadJpeg 方法加载图像进入对象。有关更多图像加载示例,请参阅有关re-sizing an image on Windows Phone 的问题。

    【讨论】:

    • 优秀的答案格雷格!谢谢。
    【解决方案2】:

    抱歉 - 但目前无法执行此操作 - 请参阅 Is it possible to configure the resolution of `CameraCaptureTask` in WP7?

    如果你幸运的话,新的 Mango SDK 可能会有所帮助 - 现在还有 2 周时间。

    【讨论】:

    • 您是正确的,应用程序无法指定他们想要使用什么分辨率来拍摄照片,但问题是为什么返回的图像小于用户选择的捕获分辨率。我相信这个问题是由于 BitmapImages 自动将图片大小调整为小于 2000x2000(见我的回答)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多