android预览画面拉伸,Android Camera 预览图像被拉伸变形的解决方法

本文介绍了在Android相机开发中遇到的预览图像拉伸问题及其原因,主要是由于分辨率设置不当导致。通过分析图像的宽高比和SurfaceView的尺寸,作者提供了一个名为getOptimalSize()的方法来选择合适的分辨率,以确保相机预览时不出现图像拉伸。正确设置分辨率的时机是关键,避免使用SurfaceView的宽高作为分辨率,因为并非所有手机都支持自定义分辨率,应从相机支持的预览尺寸列表中选取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

标签: Android 相机

最近做了一段时间的相机开发,有一些感悟,所以在这里整理分享出来。在这个过程中也出现了一些问题,比如预览的时候图像是被拉伸的,预览的时候旋转图片变形,把手机旋转90的时候预览图片是变形的等等,很多问题。其实最后的原因都是归因于分辨率。为什么会这么说,下面一点点分析。

自定义相机,从用户的操作的角度来看,有两个部分。一个是看手机屏幕的图像,一个是点击拍摄照片(有特殊功能的除外,说的都是一般的相机)。在这两部中,其实都是在跟图像打交道,手机屏幕上的图像其实就是一帧帧硬件相机扫描出来的结果,点击照相时就是把这一帧帧的图像挑选出来某一帧。

那说道图像,我想问个问题,“什么样的图像显示是正常的呢?“可能这个问题有些人不理解,也不知道怎么回答。我有一个答案,不知道说的对不对,但是我目前是这么认为的,如果要是有不同的意见,可以留言,大家一起讨论。我认为图像要是显示正常,应该是图像的大小跟分辨率匹配,图像的分辨率是表述像素点的多少的。那假设我有一个宽3,高4的图像,而在图像上的像素点却是,宽4个,高3个。那这种的话,像素点描述出来的图片肯定不是我们想要的,是被拍扁了的一张图片。所以自定义相机就应该是解决如何选择一个合适的分辨率设置给相机,而且应该是跟图像的宽高有关。

那下面就看看如果选择一个合适的分辨率。在android官方的demo例子里面是有相关的代码的。

private static Camera.Size getOptimalSize(@NonNull List sizes, int w, int h) {

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值