android camera分辨率设置,android CAMERA 设置照片大小

在REAL210 Android设备上,通过修改CAMERA驱动和JPEG库设置,成功启用OV3640摄像头的300万像素模式。涉及修改包括设置最大分辨率、更新源代码中的尺寸限制,并调整内核JPEG驱动的参数以支持更高分辨率。最终解决了拍照卡顿问题,实现了300W像素的照片拍摄,但画质提升不明显。
AI助手已提取文章相关产品:

最近在 REAL210 android 上调试 CAMERA 驱动。

发现原来的开发板只支持 640*320 以及 320*240 ,

但是用的是 OV3640 300W 的摄像头,应该可以拍照到 2048*1536 的分辨率的。

索性把这个 300W 打开吧。

1、看看这里是否支持 300W 的分辨率,原生 ANDROID 是支持到 500W 的。

packages/apps/Camera/res/values/strings.xml

5M Pixels

3M Pixels

2M Pixels

1M Pixels

640 X 480

320 X 240

2、设置 CAMERA 的最大分辨率

device/samsung/proprietar/libcamera/SecCamera.h

const struct camera_info s5k4ba_info =

{

640,   // max_preview_width

480,   // max_preview_height

2048,   // max_snapshot_width

1536,   // max_snapshot_height

完成以上两步在 CAMERA 界面就可以见到  300W 的选择了。

当选择了 300W 拍照后 系统卡住不动了,通过跟踪发现是

device/samsung/proprietar/libs3cjpeg/JpegEncode.cpp

里面的

encode_jpg(struct s5pc110_jpg_ctx *jpg_ctx,

struct jpg_enc_proc_param *enc_param)

这个函数里面申请的图片 SIZE 大于允许的范围了。

最后在

device/samsung/proprietar/libs3cjpeg/jpeg.h

#define MAX_JPG_WIDTH                   2048

#define MAX_JPG_HEIGHT                  1536

设置这个最大 SIZE 即可。

但是拍照的时候还是卡住了,通过跟踪发现和 内核的 JPEG 驱动有关,

进入 JPEG 驱动后发现允许的最大 分辨率是 800*480

把这个 SIZE 设置成 2048*1536

#ifdef CONFIG_VIDEO_JPEG_V2

static struct s3c_platform_jpeg jpeg_plat __initdata = {

.max_main_width= 2048,

.max_main_height= 1536,

.max_thumb_width= 320,

.max_thumb_height= 240,

};

#endif

然后再把申请的内存空间放大

#define  S5PV210_VIDEO_SAMSUNG_MEMSIZE_JPEG (14336 * SZ_1K)

注意:device/samsung/proprietar/libs3cjpeg/jpeg.h里面的

JPG_TOTAL_BUF_SIZE

通过以上的修改

已经可以实现 300W 的拍照了

但是感觉拍出来的照片和 100W 的效果差不多

就是图片的 SIZE 变大了。

您可能感兴趣的与本文相关内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值