电子设备快速拍摄带水印照片的方法与流程

文档序号:11236958阅读:1022来源:国知局
电子设备快速拍摄带水印照片的方法与流程

本发明涉及数码拍照技术领域,具体涉及一种快速拍摄带水印照片的方法。



背景技术:

当前,在用户使用电子设备(如数码相机、智能手机)拍摄带水印的照片时,在保存照片前,电子设备需要把来自摄像头的图像信息和用户预先设定的水印信息进行合成,形成新的图像信息,然后再保存成特定的图像格式。而水印信息的合成步骤需要进行大量的计算(而这些计算可能没有使用硬件加速),这会显著增大完成一次拍摄过程所需要的时间,不利于用户连续拍摄多张带水印照片。



技术实现要素:

针对当前电子设备完成带水印照片的拍摄、保存过程比较慢的缺点,本发明提出一种电子设备快速完成水印照片拍摄的方法,其特征在于:在拍摄了一张水印照片时,所述电子设备并不直接生成标准图像格式的水印照片,而是仅记录未添加水印的图像信息,而将为图像添加水印的操作延迟到不影响用户进行拍摄的时机进行。

具体的说,对于水印照片的拍摄,在拍摄时为此照片记录如下描述信息:(1)原始图片信息,即:若本次拍摄时用户没有要求添加水印,电子设备所应保存的图片信息;(2)水印的描述信息;当所述电子设备的取景框不处于工作状态时,依次扫描电子设备中、按上述方式存储的水印照片,在生成标准图像格式的水印照片后,删去在拍摄时为此水印照片记录的信息。在本发明所述方法中,水印照片和非水印照片的拍摄保存过程的区别仅为:在拍摄水印照片时,需要额外保存水印的描述信息,而这一额外的保存过程所要求的计算量非常小,从而可以实现水印照片与非水印照片相同的拍摄速度;水印照片的最终生成步骤被放在了用户不再关注拍摄速度的时间段,从而对用户隐藏了拍摄时真正生成水印照片所需要的计算时间。

附图说明

图1示出了典型实施方式1中,智能手机拍摄软件在空闲时,对“应带有水印的照片”进行延迟添加水印信息的方法。

图2为典型实施方式1中,智能手机拍摄软件在拍摄带水印照片时,实际在图片存储库中存入的内容。说明:在水印被延迟添加后,此存储内容被自动删除,而换成同文件名(扩展名改为.jpg)的jpeg格式文件。

图3为典型实施方式2中,在拍摄前,拍摄软件在发现水印信息发生变化时,所执行的流程。

图4示出了典型实施方式2中,智能手机拍摄软件在空闲时,对“应带有水印的照片”进行延迟添加水印信息的方法。

图5示出了本发明所述的、为被拍摄内容延迟添加水印的原理。在有些情况下,如典型实施方式2中,不是每次拍照都对应一次保存水印描述信息,因此在图5中,“保存水印信息”使用虚框示出。

具体实施方式

为使本发明的目的、技术方案及优点更加清楚明白,以下实施例对本发明进行进一步详细说明。本领域相关技术人员应理解:此处所描述的具体实施方式仅用于解释本发明思想,并不能用于限定本发明的保护范围。

虽然下面所有的实施方式都以智能手机上的拍照软件为例进行说明,本发明所述方法也可以用于数码相机。

典型实施方式1:

智能手机拍照软件在存储被拍摄图像信息时做如下约定:

若文件的扩展名为.jpg,则存储的为标准jpeg格式的文件;

若文件的扩展名为.jpg,则存储的为拍摄水印照片时生成的水印照片描述文件。它由两部分组成,第一部分是一个.jpg文件的内容(对应原始图片信息,即:若拍摄时用户没有要求添加水印,电子设备所应该保存的标准jpeg格式的文件),第二部分是水印描述信息,包括水印的模式、位置、内容等信息。电子设备可以依据第一部分和第二部分的内容,生成用户在拍摄时所要求的水印照片。在物理存储上,可以认为是在第一部分.jpg文件的尾部追加第二部分水印描述信息后,得到最终的.jpg文件。

这种方式的优点是:①即使拍照软件因为某些原因没有及时将拍摄时存储的水印照片描述文件转换为标准jpeg格式的水印文件,用户仍然可以浏览这些照片(不过看不到其中的水印信息);②拍照软件可以通过文件扩展名,很容易知道当前还有那些文件需要转换成标准jpeg格式。

此时,在用户设定水印拍摄模式后,拍摄软件执行包括如下步骤的流程保存水印照片描述文件:

步骤一:为本次拍摄分配一个扩展名为.jpg的新文件名;

步骤一:生成被拍摄内容对应的、标准jpeg格式文件的内容(此步骤与不包含水印信息的拍摄中、生成最终图片存储文件内容的过程完全相同);

步骤三:将步骤二生成的内容保存到存储体中以步骤一所分配新文件名为名字的文件中;

步骤四:在步骤三所生成文件的尾部追加水印描述信息。

当拍摄软件检测到取景框不处于工作状态、且不处于拍摄状态时(如:用户切换到了“设置模式”、或用户关闭了屏幕、或拍摄软件对应的用户任务不在前台运行了、或用户在浏览已拍摄的图片),扫描图片存储库,从当前已拍摄所有图片的尾部,从后向前开始寻找所有的扩展名为.jpg的图片文件,对于每一个这样的图片文件picture,执行包括如下步骤的流程:

步骤一:若图片存储库中存在文件picture,其中picture的文件名与picture的文件名除扩展名外完全相同、且文件picture的扩展名为.jpg,则执行步骤二,否则转到步骤四;

步骤二:若文件picture不是一个合法的jpeg格式文件,则转到步骤三,否则转到步骤九;

步骤三:将文件picture从图片存储库中删去;

步骤四:按照标准jpeg文件格式,解析picture,获得picture中所包含的jpeg格式数据的实际长度real_len;

步骤五:根据文件picture前real_len个字节,获得被拍摄的原始图像orig_img;

步骤六:根据picture的第real_len个字节之后的部分,获得应给原始图像添加的水印描述信息watermark;

步骤七:根据步骤五获得的orig_img和步骤六获得的水印描述信息watermark,根据标准的为图像添加水印的算法,生成在原始图像中加盖了水印后形成的新图像信息mark_img;

步骤八:按照标准jpeg文件格式,将步骤七获得的新图像信息mark_img存储为图片存储库中的picture文件,其中picture文件的文件名与picture文件的文件名只有扩展名不同,picture文件的扩展名为.jpg;

步骤九:从图片存储库中删去picture文件;

步骤十:对文件picture的处理结束。

在上述流程中,步骤四到步骤十为核心处理流程,而步骤一到步骤三则是用来保证“若核心 处理流程因为某种原因被中断,系统仍然能够正常完成图像文件转换操作”。

在上述流程中,从后向前搜索图片存储库的原因是:方便用户查看最近拍摄的图片。

在本实施方式中,采用“物理一一对应”的方式存储“被拍摄的画面信息”和“此画面对应的水印信息”(由一个文件同时包含这两部分信息);也可以分开存储着两部分信息,而通过“逻辑一一对应”的方式建立这两部分信息之间的关联。针对后一种方式,本领域相关技术人员在本发明的启示下自行得出的方案仍然落在本发明的保护范围之内。

典型实施方式2:

此时,采用“多对一”的方式存储“被拍摄的画面信息”和“被拍摄画面对应的水印信息”,比如,在图片存储库中创建子库,在子库中放入水印描述文件和多个被拍摄的图像文件,这些图像文件都使用本子库中同一个水印描述文件进行加盖水印操作。

此时,电子设备内部维护变量last_style和current_lib,其中last_style变量记录了最近使用的水印描述信息,用于判断当前是否切换了水印描述信息(比如:若水印中包含了精确到“分钟”、甚至“秒”的时间,需要为图片加盖的水印可能会自动变化),current_lib变量记录了图像文件应当被存放到图片存储库中的哪个子库。

当需要采用新的加盖水印方式时(如:用户主动进行了水印设置,或因外部原因——如时间的流逝——需要使用新的水印),拍摄软件执行包含如下步骤的流程:

步骤一:若当前的水印设置为“无水印”,则转到步骤二,否则转到步骤四;

步骤二:令current_lib指向图片存储库;

步骤三:处理结束;

步骤四:在图片存储库中创建一个新的子库new_lib;

步骤五:将欲使用的水印的描述信息记录到new_lib里的水印描述文件中;

步骤六:令current_lib指向new_lib,令last_style为当前的水印描述信息;

步骤七:处理结束。

当拍摄软件在拍摄图片时,即使用户设定了需要加盖水印,仍然按照拍摄非加盖水印图片的方式进行正常拍摄,并将拍摄后的图片存储到current_lib所指向的位置。

当拍摄软件检测到取景框不处于工作状态时,扫描图片存储库的所有子库,对每个子库lib,执行如下包括如下步骤的流程:

步骤一:从子库lib中获得水印描述信息watermark;

步骤二:若子库lib中还有图片文件,则转到步骤三,否则转到步骤八;

步骤三:获得子库中、拍摄时间最晚的图片文件picture;

步骤四:根据标准的为图像添加水印的算法,生成在picture所包含图像中加盖了watermark所描述的水印信息后,所形成的新图像信息mark_img;

步骤五:将步骤四获得的新图像信息保存为图片存储库中的图片文件;

步骤六:从子库lib中删去图片文件picture;

步骤七:转到步骤二;

步骤八:从图片存储库中删去子库lib;

步骤九:对子库lib的处理结束。

在上述流程中,也可以在步骤三和步骤四之间插入和典型实施方式1类似的、“检查图片文件picture是否已经被正确转换”的逻辑。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1