相机预览与位图不同

时间:2016-10-02 19:31:24

标签: java android xml bitmap camera

我目前正在我的应用程序中创建一个Android相机,但是,我在surfaceview上看到的图片(在拍摄图像之前)和捕获的图像略有不同,因为拍摄的图像被裁剪掉了。

以下是拍摄图像前的图像预览: https://drive.google.com/file/d/0B4vL9wnJulKocGF1ejJxX1c5Qms/view?usp=sharing

这是捕获的图像: https://drive.google.com/file/d/0B4vL9wnJulKoUWREYngxWFk3aXc/view?usp=sharing

以下是相机预览的XML文件

 <RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:adjustViewBounds="true"
    android:id="@+id/camera_preview"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true">
</RelativeLayout>

以下是捕获图像的XML文件:

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:adjustViewBounds="true"
    android:id="@+id/capturedImageHolder"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true" />

有人可以帮忙吗? 感谢

2 个答案:

答案 0 :(得分:0)

据推测,预览分辨率和图像分辨率不同。这并不罕见;事实上,并不要求设备在预览和图片之间提供任何相同的分辨率。

答案 1 :(得分:0)

没有合同,捕获的图像将与预览完全相同。实际上,相机在预览和拍摄过程中会执行不同的工作:前者针对速度和电池进行了优化,后者则针对图像质量进行了优化。但是,有一些方法可以使它们更相似。

首先,确保所选预览尺寸的宽高比与图片尺寸的宽高比相同。如果您为预览和图片选择相同尺寸,则可以进一步改善结果(请注意,这通常意味着您获得相对较低分辨率的图片)。

这仍然不能保证图像完全匹配,因为捕获可能涉及,聚焦并且还有一些延迟,这意味着场景会发生变化。

您可以尝试保持预览的焦点,并在捕捉时冻结焦点。我认为这需要调整您的特定设备(它支持的聚焦模式等)以获得最佳效果。

最后,您只需使用最新的预览图像来存储图片,而不是执行&#34;捕获&#34;。这将产生最佳匹配,但图像质量可能更差。