我目前正在我的应用程序中创建一个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" />
有人可以帮忙吗? 感谢
答案 0 :(得分:0)
据推测,预览分辨率和图像分辨率不同。这并不罕见;事实上,并不要求设备在预览和图片之间提供任何相同的分辨率。
答案 1 :(得分:0)
没有合同,捕获的图像将与预览完全相同。实际上,相机在预览和拍摄过程中会执行不同的工作:前者针对速度和电池进行了优化,后者则针对图像质量进行了优化。但是,有一些方法可以使它们更相似。
首先,确保所选预览尺寸的宽高比与图片尺寸的宽高比相同。如果您为预览和图片选择相同尺寸,则可以进一步改善结果(请注意,这通常意味着您获得相对较低分辨率的图片)。
这仍然不能保证图像完全匹配,因为捕获可能涉及,聚焦并且还有一些延迟,这意味着场景会发生变化。
您可以尝试保持预览的焦点,并在捕捉时冻结焦点。我认为这需要调整您的特定设备(它支持的聚焦模式等)以获得最佳效果。
最后,您只需使用最新的预览图像来存储图片,而不是执行&#34;捕获&#34;。这将产生最佳匹配,但图像质量可能更差。