一种图像处理方法、设备及终端的制作方法_2

文档序号:9711821阅读:来源:国知局
:Windows系统(一种操作系统)、Android(安卓,一种移动操作系统)系统、10S(—种移动操作系统)系统等等,本发明对此并不作限定。本发明实施例中,存储器的存储空间还存储了图像处理设备,该设备可以是终端内的一个应用程序,优选地,该设备可以是自定义图像处理应用程序,例如:该设备可以是终端内的自定义相机APP、美图秀APP、美颜相机APP等等。
[0045]终端的摄像设备是由终端的系统所控制的,具体为:终端的摄像设备所获得的预览图像的尺寸、拍摄图像的尺寸以及界面布局等均是由终端的系统所决定的;以Android系统的终端为例,预览图像的尺寸由终端的系统参数PreviewSize决定,拍摄图像的尺寸由终端的系统参数PictureSize决定。基于此,终端内的图像处理设备(即诸如自定义相机APP、美图秀APP等自定义图像处理应用程序)使用终端的摄像设备实现拍照功能时,可通过调用终端的系统API来实现自定义拍摄应用,包括界面布局的定制,以及拍摄功能与拍摄风格的丰富等应用。图2为自定义拍摄应用的定制流程;下面以Android系统的终端为例,结合图2详细说明该流程如下:
[0046]①开启终端中的摄像设备。可调用Androi d系统中的Camera.0pen ()接口来获得一个摄像设备Camera对象的实例,从而开启Andro i d系统的终端的摄像设备。
[0047]②获取预览图像。调用Android系统中的Camera.setPreviewDisplay ()接口将Camera连接到一个SurfaceView,准备实时预览;再使用Camera.startPreview()控制摄像设备开始实时获得预览图像,摄像设备会将预览图像的当前预览帧数据实时传输至该SurfaceView进行展示。此处需要说明的是,SurfaceView是一个自定义创建的继承类,此类能够实时显示摄像设备所获得的预览图像;可见,在自定义拍摄应用的定制过程中,预览图像的展示区域大小是由SurfaceView的尺寸所决定的,而如前述,预览图像(即预览帧数据)的尺寸是由终端的系统参数PreviewSize所决定的,那么,如果SurfaceView与PreviewSize所决定的尺寸不一致时,会造成预览图像的拉伸失真。
[0048]③控制摄像设备进行拍摄。在SurfaceView所展示的预览图像的界面中,可以定制拍摄功能控件,此控件可包括但不限于:拍摄按钮、闪光灯按键、摄像头切换按钮等等。如果检测到拍摄按钮被触发产生拍摄事件时,可调用Android系统中的Camera.takePicture ()接口模拟终端的系统控制摄像设备的拍摄过程,获得拍摄图像。在一种具体实现中,摄像设备会将拍摄图像的拍摄帧数据实时传输至该SurfaceView进行展示;此时,拍摄图像的展示区域大小是由SurfaceView的尺寸所决定的。在另一种具体实现中,摄像设备会将该拍摄图像的拍摄帧数据传输至诸如自定义相机APP、美图秀APP等自定义图像处理应用程序,自定义图像处理应用程序会将该拍摄图像生成位图文件,再转换为以常用图像格式名(如:JPEG(Joint Photographic Experts Group,联合图像专家小组)、PNG(Portable NetworkGraphic Format,图像文件存储格式)等)为后缀的图像进行保存或输出。
[0049]④关闭终端中的摄像设备。当无需使用终端的摄像设备时,可调用Android系统中的Camera.stopPreview()停止摄像设备实时获得预览图像,并且,调用Camera.release()翻译所占用的资源,使其他应用程序能够使用该终端的摄像设备。
[0050]图2所示流程为完整的通过调用终端的系统API使用终端的摄像设备实现自定义拍摄的流程。在此流程中,如果需要对图像进行裁剪、滤镜、添加标签等编辑处理,现有技术的处理方案为:图2所示步骤③中的摄像设备获得拍摄图像后,将拍摄图像的拍摄帧数据按照位图编码规则生成位图文件;提取该位图文件进行编辑处理,再保存为以常用格式名为后缀的目标图像。也就是说,现有技术基于拍摄图像的拍摄帧数据进行编辑处理,这将会有如下缺陷:用户通常是根据预览图像来确定是否需要进行图像处理的,而预览图像(即预览帧数据)的尺寸是由终端的系统参数PreviewSize所决定的,然而实际却是基于拍摄图像进行图像处理的,而拍摄图像(即拍摄帧数据)的尺寸是由终端的系统参数PictureSize所决定的,如果PreviewSize与PictureSize尺寸匹配不一致,会导致预览图像与拍摄图像的大小方位不一致,影响用户体验及图像处理效果。基于此,上述现有技术中,为了保证编辑处理后的图像质量,同时保证编辑处理后的图像与预览图像的一致性,需要在处理过程中保证卩^¥16¥312 6与?;[01:11^312 6之间的尺寸匹配一致性,这将增加图像处理过程的时耗,增加图像处理的复杂度,还可能造成终端或摄像设备出现预览卡顿,降低用户体验。
[0051]基于上述描述,为了提升图像处理过程的方便性和快捷性,本发明实施例提供一种图像处理方法,该方法适用于调用终端的摄像设备实现自定义拍摄应用的定制流程;在该方法中不再基于终端的摄像设备获得的拍摄图像的拍摄帧数据进行图像编辑处理,也就是说不再调用Camera.takePicture()接口执行图2所示的步骤③来获得拍摄图像进行处理;而是直接基于摄像设备获得的预览图像的预览帧数据进行图像编辑处理;由于直接针对预览图像进行编辑处理,节省了解决SurfaceView与PictureSize之间的尺寸匹配问题所耗费的时间,使得图像处理更简单,效率更高,并且由于图像处理的对象来源于预览帧数据,这使得处理过程以及处理后获得的图像与预览效果一致,从而能够保证处理后的图像质量,提升用户体验。请参见图3,该方法可包括以下步骤S101-S104:
[0052]S101,调用终端的摄像设备获取预览图像的当前预览帧数据。
[0053]本步骤中,可以使用终端的系统所提供的关于摄像设备的一系列API接口,从而调用终端的摄像设备获取预览图像的当前预览帧数据。具体实现中,该方法在执行步骤S101时具体执行如下步骤S11-S12:
[0054]sll,开启所述终端的摄像设备实时获得预览图像。
[0055]sl2,调用所述终端的系统API接口,获取所述预览图像的当前预览帧数据。本实施例的步骤sll-sl2可以参考图2所示的步骤①-步骤②,在此不赘述。
[0056]S102,将所获取的当前预览帧数据保存至所述终端的系统内存中。
[0057]本步骤实质上是在终端的系统内存中对当前预览帧数据保存一份内存快照,这样做不会对SurfaceView造成任何影响,不会影响预览图像的预览效果,也不会造成预览卡顿,尤其是当使用终端的摄像设备进行图像连拍时,能够有效提升响应速度。具体实现中,该方法在执行步骤S102时具体执行如下步骤s21-s22:
[0058]s21,设置预览回调函数。
[0059]s22,采用所述预览回调函数将所获取的当前预览帧数据回调写入所述终端的系统内存中。
[0060]同样以Android系统的终端为例进行说明,步骤s21-s22中,可通过调用Camera.setPreviewCal IBack()接口设置预览回调函数。每当终端的摄像设备获得新的预览帧数据,则触发该回调函数将所获取的新的预览帧数据回调写入内存中,并且,新的预览帧数据始终覆盖旧的预览帧数据。也就是说,终端的系统内存中存储的当前预览帧数据始终为摄像设备所获得的预览图像的最新预览帧数据。
[0061]S103,当检测到拍摄事件时,将所述系统内存中的当前预览帧数据处理为位图文件。
[0062]在SurfaceView所展示的预览图像的界面中,可以定
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1