System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于动态参数生成自适应水印的方法技术_技高网

一种基于动态参数生成自适应水印的方法技术

技术编号:40179993 阅读:10 留言:0更新日期:2024-01-26 23:46
本发明专利技术涉及图像数据处理技术领域,具体为一种基于动态参数生成自适应水印的方法;包括有获取图片信息和添加水印信息、将图片转换为base64编码格式、获取原图片宽度和高度、计算水印内容第一个文字所在位置、按照图片的宽度计算出水印初始位置,计算各部分共需绘制多少行、计算每行初始高度等步骤,本发明专利技术通过动态参数计算水印生成的行数,根据水印字体大小,计算出绘制的水印在图片上需要多少行,防止在图片边缘处内容被遮挡或绘制内容超出图片范围;本发明专利技术自适应水印绘制,能够判读当前绘制行是否需要进行换行操作,再结合计算绘制行的初始高度,实现自适应水印绘制,当计算得出绘制水印会超出图片范围时不进行绘制,防止在图片边缘处内容被遮挡。

【技术实现步骤摘要】

本专利技术涉及图像数据处理,具体为一种基于动态参数生成自适应水印的方法


技术介绍

1、随着通信、计算机和网络技术的飞速发展,数字图像的高速传输、处理以及存储己经成为现实,但是由于网络安全性问题的存在,如何管理和防止非法的数据拷贝、维护单位和个人的知识产权引起了人们的极大兴趣与注意。为解决这一问题,近几年国际上提出的一种信息安全技术是在原图像中加入不可见信息来标注版权,这些信息被称为数字水印。由于数字水印在版权保护、真伪鉴别、秘密通信等领域有着广泛的应用前景,因此数字水印成为了一个非常重要的研究领域。

2、目前,互联网上存在大量的数码照片及手工绘制图片等。但是,网络信息量的增大将会导致信息迅速流传,互联网上的大量图片在未得到所有人的同意的情况下就被到处任意流传。为了解决图片未经允许被任意流传的问题,给图片加水印可以有效地保护图片所有人的图片不被滥用,同时又起到了标识图片的作用。

3、给图片添加水印应用范围广泛,比如在图片中加上水印来防止其他人盗用图片。目前,添加水印时图片大小固定或文字内容固定,无法通过图片的大小或文字的多少自适应水印位置。但是,在给图片添加水印时,水印内容自适应比较重要,如果水印内容过多,部分水印内容将无法完整展示出来。如果图片太小,水印内容过多,会影响用户的观看效果,无法达到智能加水印的目的。有时还会出现水印字体呈现方框格,影响水印最终展示效果;现有技术只能固定的把水印加入到图片固定的位置,很容易造成水印内容展示不全,没有达到添加水印的效果。


技术实现思路</b>

1、本专利技术的目的在于提供一种基于动态参数生成自适应水印的方法,解决现有技术在添加水印时图片大小固定或文字内容固定,无法通过图片的大小或文字的多少自适应水印位置的技术问题。

2、为解决上述的技术问题,本专利技术一种基于动态参数生成自适应水印的方法包括有如下步骤:

3、s1.接收到对源图片的水印添加请求时,获取所述水印添加请求中图片信息和添加水印信息;所述的图片信息包括有图片的格式、宽度、高度、分辨率;所述的待添加水印信息包括有用户当前所在地理位置信息,用户需要在图片上呈现的具体水印文字,水印文字包括有水印文字的字体大小和颜色;用户想将水印文字换行展示,可通过“|”号进行换行分割;

4、s2.依据获取的待添加水印信息,按照水印信息要求设置对应水印字体,颜色和大小;

5、s3.获取字体安装包,将安装包放至服务器,将安装包转换为数据流,依据获取水印的字体、颜色和大小,生成对应字体对象;

6、s4.依据图片信息将图片转换为base64编码格式;

7、s5.依据转换后的编码,生成缓存图片;

8、s6.将转换后的base64编码转换为图片流,加载原图片到内存,读取原图片信息;

9、s7.获取原图片宽度和高度;

10、s8.依据获取的宽度和高度以及图片格式,生成对应缓存图片;

11、s9.依据缓存图片、字体对象以及图片的宽度和高度生成绘制水印工;

12、s10.计算水印内容第一个文字所在位置,如果请求的水印文字包含“|”,说明用户指定了文字换行,需要分成多个部分计算所占行,再将行数求和并计算第一个文字所在位置;

13、s11.按照图片的宽度计算计算出水印初始位置,计算各部分共需绘制多少行,每部分所占行数向上取整、分母图片宽度减去一个字体大小防止绘制水印内容不完整和边缘被遮挡,公式如下:

14、;

15、公式中:l代表水印绘制文字共占用行数;m代表绘制的水印分成了几部分;n代表内容长度;x代表字体大小;w代表图片宽度;

16、s12.计算每行初始高度,公式如下:

17、

18、公式中:l代表水印绘制文字共占用行数;m代表绘制的水印分成了几部分;n代表内容长度;x代表字体大小;w代表图片宽度;h代表图片高度;k代表当前绘制行;

19、s13. 水印绘制完成后将缓存图片转换为原始图片,存储到服务器中保存。

20、进一步的,所述的步骤s11中,按水印的字体大小及图片宽高计算图片最多可以绘制行数,向下取整防止绘制水印内容不完整,当满足时,绘制内容超出图片范围,不进行绘制,公式中,l代表水印绘制文字共占用行数;h代表图片高度;x代表字体大小。

21、进一步的,所述的步骤s12中,当y<0或y>h时,绘制水印会超出图片范围,不进行绘制。

22、进一步的,所述的步骤s12中,确定初始位置后开始绘制水印内容,记录每行绘制的字数m,当不满足条件w≤mx+x/2时继续绘制本行内容,当满足w≤mx+x/2条件时开始绘制下一行,判断满足条件时增加半个字体大小,防止出现文字被边缘遮挡情况;以此类推,将剩余内容直接绘制;每绘制一行,起始位置变化,实现自适应水印绘制。

23、本专利技术的有益效果是:

24、本专利技术通过动态参数计算水印生成的行数,根据水印字体大小,在获取到图片的宽度和高度后,计算出绘制的水印在图片上需要多少行,防止在图片边缘处内容被遮挡或绘制内容超出图片范围;

25、本专利技术自适应水印绘制,能够判读当前绘制行是否需要进行换行操作,再结合计算绘制行的初始高度,实现自适应水印绘制,当计算得出绘制水印会超出图片范围时不进行绘制,防止在图片边缘处内容被遮挡。

本文档来自技高网...

【技术保护点】

1.一种基于动态参数生成自适应水印的方法,其特征在于:包括有如下步骤:

2.根据权利要求1所述的一种基于动态参数生成自适应水印的方法,其特征在于:所述的步骤S11中,按水印的字体大小及图片宽高计算图片最多可以绘制行数,向下取整防止绘制水印内容不完整,当满足时,绘制内容超出图片范围,不进行绘制,公式中,L代表水印绘制文字共占用行数;h代表图片高度;x代表字体大小。

3.根据权利要求2所述的一种基于动态参数生成自适应水印的方法,其特征在于:所述的步骤S12中,当Y<0或Y>h时,绘制水印会超出图片范围,不进行绘制。

4.根据权利要求3所述的一种基于动态参数生成自适应水印的方法,其特征在于:所述的步骤S12中,确定初始位置后开始绘制水印内容,记录每行绘制的字数m,当不满足条件w≤mx+x/2时继续绘制本行内容,当满足w≤mx+x/2条件时开始绘制下一行,判断满足条件时增加半个字体大小,防止出现文字被边缘遮挡情况;以此类推,将剩余内容直接绘制;每绘制一行,起始位置变化,实现自适应水印绘制。

【技术特征摘要】

1.一种基于动态参数生成自适应水印的方法,其特征在于:包括有如下步骤:

2.根据权利要求1所述的一种基于动态参数生成自适应水印的方法,其特征在于:所述的步骤s11中,按水印的字体大小及图片宽高计算图片最多可以绘制行数,向下取整防止绘制水印内容不完整,当满足时,绘制内容超出图片范围,不进行绘制,公式中,l代表水印绘制文字共占用行数;h代表图片高度;x代表字体大小。

3.根据权利要求2所述的一种基于动态参数生成自适应水印的方法,其特征在于:所...

【专利技术属性】
技术研发人员:马晓波李国鹏马国祖张昊吕婧韩伟刘晓刚杨晓慧张继佩雷耀祖
申请(专利权)人:中电万维信息技术有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1