智能水印移动方法与流程

文档序号:12824241阅读:292来源:国知局
智能水印移动方法与流程

本发明涉及信息安全保护技术领域,更具体地说,它涉及一种智能水印移动方法。



背景技术:

随着社会的发展,多媒体技术日渐成熟,人们的生活越来越离不开电子产品,如手机。很多人在闲暇时间用手机看视频,或者逛社交软件,看到精彩的视频和图片时,会将其剪辑并保存下来。但是无论是视频还是图片均有其版权,随意剪辑和保存实际是侵犯了制作者版权的。所以,为了保证自己的视频或者图片不被随意使用,一般会在视频或者图片上设置水印。

水印有两种,一种是直接将水印信息隐藏在宿主文件中,不影响原始文件的可观性和完整性,这种水印被嵌入到算法中,在需要的时候能够被提取出来;另一种水印是直接能够显示在视频或者图片的一角,无论是剪辑、直接保存还是另外录制,均会有水印的显示,第二种水印的表现能够更加直接的保护视频或者图片的版权。

但是针对于上述第二种水印,一般是以静态的形式显示在手机的一角,其他人能够直接将剪辑、录制的视频或者图片上的水印在相应位置打上马赛克,将原来的水印模糊化来规避侵权责任,这样的水印起不到防盗取作用。



技术实现要素:

针对现有技术存在的不足,本发明的目的在于提供一种智能水印移动方法,能够使水印随机移动,从而起到防盗取作用。

为实现上述目的,本发明提供了如下技术方案:

一种智能水印移动方法,包括如下步骤:s1:获取屏幕大小,计算屏幕的宽高,并建立坐标轴;s2:设置水印图片的透明度;s3:获取所述水印图片的宽高,并根据屏幕的宽高和水印图片的宽高,随机生成所述水印图片上任意端点位于屏幕内的位置;s4:根据获取的端点位置在屏幕内绘出所述水印图片;s5:随机设置所述水印图片显示的时间间隔;s6:随机设置获取端点的变化值,重新获取该端点的位置;若变换后获取的位置不在屏幕内,则重新获取该端点的位置,直到该端点位于屏幕内;s7:在上述的时间间隔后,重复s4-s6。

进一步的,所述步骤s3包括:s31:选定其中一个端点,并限定该端点横坐标和纵坐标的取值范围,使得所述水印图片的四个端点均位于所述屏幕内;s32:在限定范围内随机获取数值作为所取端点的横坐标;s33:在限定范围内随机获取数值作为所取端点的纵坐标;s34:根据上述获取的坐标计算其余三个坐标的位置。

进一步的,所述步骤s6包括如下步骤:s61:随机获取变化值,改变端点的横坐标或者纵坐标,判断该坐标值是否位于限定的范围内;若不在限定范围内,则重新获取变化值;否则进入下一步;s62:根据不同的函数计算对应的纵坐标或者横坐标,判断该坐标值是否位于限定的范围内;若不在限定范围内,则重新操作s61;否则进入步骤s7。

进一步的,所述函数包括幂函数、指数函数、对数函数、三角函数、反三角函数、双曲函数、或反双曲函数的曲线。

与现有技术相比,本发明的优点是:获取屏幕和水印图片的大小,然后选定水印图片的其中一个端点,限定该端点在屏幕中的范围,使得其余水印图片的其余3个端点的位置均能在屏幕内,之后画出该水印图片的初始位置;并在随机的时间后,重新获取该端点的横坐标或者纵坐标的值,并按照一定函数获取相应的纵坐标或者横坐标的值,重新显示水印图片的位置,使得水印图片能够不定时的显示在屏幕上的任何位置,可有效防止他人直接打马赛克隐藏的做法,能够有效保护作者的版权。

为实现上述目的,本发明提供了如下技术方案:

一种智能水印移动方法,包括如下步骤:s1’:获取屏幕大小,计算屏幕的宽高,并建立坐标轴,将所述屏幕划分成多个区域;s2’:获取所述水印图片的宽高,并根据屏幕的宽高和水印图片的宽高,随机生成所述水印图片上任意端点位于屏幕内的位置;s3’:判断获取的端点对应的区域,设置水印图片相对应的透明度;s4’:根据获取的端点位置在屏幕内绘出所述水印图片;s5’:随机设置所述水印图片显示的时间间隔;s6’:随机设置获取端点的变化值,重新获取该端点的位置;若变换后获取的位置不在屏幕内,则重新获取该端点的位置,直到该端点位于屏幕内;s7’:在上述的时间间隔后,重复s3’-s6’。

进一步的,所述步骤s2’包括:s21’:选定其中一个端点,并限定该端点横坐标和纵坐标的取值范围,使得所述水印图片的四个端点均位于所述屏幕内;s22’:在限定范围内随机获取数值作为所取端点的横坐标;s23’:在限定范围内随机获取数值作为所取端点的纵坐标;s24’:根据上述获取的坐标计算其余三个坐标的位置。

进一步的,所述步骤s6’包括如下步骤:s61’:随机获取变化值,改变端点的横坐标或者纵坐标,判断该坐标值是否位于限定的范围内;若不在限定范围内,则重新获取变化值;否则进入下一步;s62’:根据不同的函数计算对应的纵坐标或者横坐标,判断该坐标值是否位于限定的范围内;若不在限定范围内,则重新操作s61’;否则进入步骤s7’。

与现有技术相比,本发明的优点是:将屏幕划分成多个区域,各个区域对应的水印图片的透明度不同,以减少水印显示在屏幕上时对人观看屏幕时的异物感;选定水印图片的其中一个端点,限定该端点在屏幕中的范围,使得其余水印图片的其余3个端点的位置均能在屏幕内,然后判断该端点位置相应的区域位置,设定水印图片的透明度,之后画出该水印图片的初始位置;并在随机的时间后,重新获取该端点的横坐标或者纵坐标的值,并按照一定函数获取相应的纵坐标或者横坐标的值,重新判断该端点的位置并设置相应的透明度,重新显示水印图片的位置,使得水印图片能够以不同的透明度不定时的显示在屏幕上的任何位置,可有效防止他人直接打马赛克隐藏的做法,能够有效保护作者的版权,并较少观众的看屏幕时的异物感。

为实现上述目的,本发明提供了如下技术方案:

一种智能水印移动方法,包括如下步骤:s1’’:获取屏幕大小,计算屏幕的宽高,并建立坐标轴;s2’’:获取所述水印图片的宽高,并根据屏幕的宽高和水印图片的宽高,随机生成所述水印图片上任意端点位于屏幕内的位置;s3’’:判断屏幕上与获取端点相对应位置的颜色,设置水印图片相对应的透明度;s4’’:根据获取的端点位置在屏幕内绘出所述水印图片;s5’’:随机设置所述水印图片显示的时间间隔;s6’’:随机设置获取端点的变化值,重新获取该端点的位置;若变换后获取的位置不在屏幕内,则重新获取该端点的位置,直到该端点位于屏幕内;s7’’:在上述的时间间隔后,重复s3’’-s6’’。

进一步的,所述步骤s2’’包括:s21’’:选定其中一个端点,并限定该端点横坐标和纵坐标的取值范围,使得所述水印图片的四个端点均位于所述屏幕内;s22’’:在限定范围内随机获取数值作为所取端点的横坐标;s23’’:在限定范围内随机获取数值作为所取端点的纵坐标;s24’’:根据上述获取的坐标计算其余三个坐标的位置。

进一步的,所述步骤s6’’包括如下步骤:s61’’:随机获取变化值,改变端点的横坐标或者纵坐标,判断该坐标值是否位于限定的范围内;若不在限定范围内,则重新获取变化值;否则进入下一步;s62’’:根据不同的函数计算对应的纵坐标或者横坐标,判断该坐标值是否位于限定的范围内;若不在限定范围内,则重新操作s61’’;否则进入步骤s7’’。

与现有技术相比,本发明的优点是:获取屏幕和水印图片的大小,然后选定水印图片的其中一个端点,限定该端点在屏幕中的范围,使得其余水印图片的其余3个端点的位置均能在屏幕内;读取该屏幕上该端点出的颜色,根据该颜色设定水印图片的透明度,之后画出该水印图片的初始位置;并在随机的时间后,重新获取该端点的横坐标或者纵坐标的值,并按照一定函数获取相应的纵坐标或者横坐标的值,重新判断该端点的位置并设置相应的透明度,重新显示水印图片的位置,使得水印图片能够以不同的透明度不定时的显示在屏幕上的任何位置,可有效防止他人直接打马赛克隐藏的做法,能够有效保护作者的版权,并较少观众的看屏幕时的异物感。

附图说明

图1为本发明实施例一的流程框图;

图2为本发明实施例二的流程框图;

图3为本发明实施例三的流程框图。

具体实施方式

针对现有的视频或者图片的静态水印起不到良好的防盗取作用,现在参见图式描述各个方面。在以下描述中,出于阐释的目的,陈述许多具体细节以便提供对一个或一个以上方面的详尽理解。然而显然,可在没有这些具体细节的情况下实践此类方面。在其它实例中,以框图形式展示众所周知的结构和装置以便促进描述这些方面。

参照图1,一种智能水印移动方法,客户端根据屏幕大小,计算出屏幕的宽高,以android系统手机为例,可调用手机系统内部提供的context类,从而获取以dp为单位的手机屏幕宽高,并将手机屏幕的宽度和高度对应设置为screenwidth和screenheight。之后,以屏幕的左上点作为原点,宽作为x轴,高作为y轴,可得到屏幕左上点a的坐标(0,0)、屏幕左下点b的坐标(0,screenheight)、屏幕右上点c的坐标(screenwidht,0)、以及屏幕右下点d的坐标(screenwidth,screenheight),即屏幕位于坐标轴上的横坐标的范围为0-screenwidht,纵坐标的范围为0-screenheight。

获取公司ui所给的包含公司信息、个人信息或者其他信息的logo图片作为水印图片,本实施例中,该水印图片呈矩形设置,然后用系统所给bitmap类,调整图片渐变透明度,本实施中采用透明度为10%的水印图片,该透明度的水印图片能够使得该水印图片在屏幕中移动时,不会影响使用者的观察效果,同时又能起到标志作用。

之后,将设定好透明度的该水印图片资源放入系统imageview类里面,并调用imageview.getwidth()和imageview.getheight(),获得图片的宽度和高度,分别设为imageviewwidth和imageviewheight。然后,使用系统提供的随机数生成类random,生成水印图片左上点a1点的x轴坐标:inta1=random.nextint(0,screenwidth-imageviewwidth),该方法能够生成一个0到screenwidth-imageviewwidth的整数a1,防止水印图片的在宽度上超出屏幕外侧。其中,0<=a1<screenwidth-imageviewwidth。同理,使用系统提供的随机数生成类random,生成水印图片左上点a1点的y轴坐标:inta2=random.nextint(0,screenheight-imageviewheight),该方法能够生成一个0到screenheight-imageviewheight的整数a2,防止水印图片的在高度上超出屏幕外侧。其中,0<=a2<screenheight-imageviewheight。

根据android手机的绘制原理为view.layout(intleft,inttop,intright,intbottom),即水印图片左上点a1的x轴坐标值传进去作为left,y轴坐标值传进去作为top,该水印图片的对角点即其右下点d1的x轴坐标d1=a1+imageviewwidth和其y轴坐标d2=a2+imageviewheight,传入分别作为right,bottom。当left、top、right、bottom已知时,用系统提供的绘制显示机制,imageview调用view.invalidate(),将水印图片第一次显示在屏幕上。

为了使该水印图片能够不定时移动,防止人为打马赛克将静态的水印隐藏,该水印图片呈动态设置,即该水印图片能够不定时变换位置。于是,接下来,在每次显示图片后,用random随机数类随机生成一个数作为水印图片移动的时间间隔。本实施例中,random随机数类随机生成1到10的正整数:inttime=random.nextint(1,10),作为图片移动的时间间隔,并初始化定时器handler.postdelayed(runnable,time),在time秒后执行之后的步骤。

用random类随机生成一水印图片左上点a1点坐标变化值,本实施例中,int△x=random.nextint(-10,10)作为水印图片左上点a1点x轴坐标的变化值,并判断生成后的值a1+△x是否在0到screenwidth-imageviewwidth范围内,若在该范围内,以同样的方式获取水印图片左上点a1点y轴坐标的变化值,并判断生成后的值a2+△y是否在0到screenheight-imageviewheight范围内;否则重新获取a1点坐标变化值,直到其x轴坐标和y轴坐标均在限定的范围内。在另一实施例中,为了增加水印图片不确定显示趣味性,设置函数集合list里面包含幂函数n0、指数函数n1、对数函数n2、三角函数n3、反三角函数n4、双曲函数n5、反双曲函数的曲线n6等相关函数;用random类随机生成int△x=random.nextint(-10,10)作为水印图片左上点a1点x轴坐标的变化值,然后判断生成后a1点x轴的值a1+△x是否在0到screenwidth-imageviewwidth范围内,如在,传入图片左上点a1点x轴坐标a1+△x,随机选取上述的其中一个函数,得到对应的y轴坐标a2,并判断a2是否在0到screenheight-imageviewheight范围内,如在,取该值;否则重新随机取集合里面函数生成y值,直到该值符合条件。

之后将符合条件的水印图片的位置显示在屏幕上,并重复上述随机选取时间的及其之后的步骤。

上述操作包括水印图片左上点在坐标轴上的限定范围是根据选取点确定的,其他实施中,也可以采用屏幕上的任意一点作为原点,由于屏幕的宽高和水印图片的宽高均可知,能够计算出水印图片在屏幕所在的坐标轴的位置及运动范围。同样的道理,也可以选定水印图片上的任意端点作为水印图片在坐标轴上的参考点。

在其他实施例中,由于人观看视频或者图片时,对屏幕上的各个位置的感光度不同,所以为了更好的适应这种差别,参照图2,将屏幕上划分成多个区域,各个区域对应所需的水印图片的透明度不同。当选取好水印图片左上点a1的坐标后,判断该点位于划分的那个区域内,再根据这个区域对应的透明度设定水印图片的透明度,然后将该图片在屏幕中显示,接下来同上操作。

在其他实施例中,由于人观看视频或者图片时,对屏幕上的各个位置的感光度不同,所以为了更好的适应这种差别,参照图3,当选取好水印图片左上点a1的坐标后,屏幕上与该点位置对应的颜色,该颜色采用rgb表述,不同的颜色对应不同的透明度,或者一个水印图片的透明度对应一个范围内的颜色,根据颜色获取对应的水印图片透明度,然后将该图片在屏幕中显示,接下来同上操作。

应了解,本文描述的方面可以硬件、软件、固件或其任何组合来实施。当以软件实施时,所述功能可作为一个或一个以上指令或代码存储在计算机可读媒体上或经由计算机可读媒体发射。计算机可读媒体包含计算机存储媒体和通信媒体两者,通信媒体包含促进将计算机程序从一个位置传送到另一位置的任何媒体。存储媒体可为可由通用或专用计算机接入的任何可用媒体。以实例而非限制的方式,此类计算机可读媒体可包括ram、rom、eeprom、cd-rom或其它光盘存储装置、磁盘存储装置或其它磁性存储装置,或任何其它可用于载运或存储呈指令或数据结构的形式的所需程序代码手段且可由通用或专用计算机或通用或专用处理器接入的媒体。并且,任何连接适当地称作计算机可读媒体。软件代码可存储在存储器单元中且由处理器执行。存储器单元可在处理器内或在处理器外部实施,在存储器外部实施的情况下,其可以通信方式经由此项技术中已知的各种方式耦合到处理器。此外,至少一个处理器可包含可操作以执行本文描述的功能的一个或一个以上模块。此外,结合本文所揭示的方面描述的方法或算法的步骤和/或动作可直接在硬件中、在由处理器执行的软件模块中或在所述两者的组合中体现。软件模块可驻存在ram存储器、快闪存储器、rom存储器、eprom存储器、eeprom存储器、寄存器、硬盘、可装卸盘、cd-rom或此项技术中已知的任何其它形式的存储媒体中。示范性存储媒体可耦合到处理器,使得处理器可从存储媒体读取信息和向存储媒体写入信息。

虽然以上揭示内容论述说明性方面,但应注意,可在不脱离所附权利要求书所界定的所描述方面的范围的情况下在本文中作出各种变化和修改。因此,所描述方面既定涵盖落在所附权利要求书的范围内的所有此类更改、修改和变化。此外,尽管可能以单数形式描述或主张所描述的方面的元件,但除非明确规定限于单数形式,否则也预期复数形式。另外,除非另外规定,否则任何方面的全部或一部分可与任何其它方面的全部或一部分一起利用。

就术语“包含”用于详细描述或权利要求书中来说,此术语既定以类似于术语“包括”在权利要求书中用作过渡词时被解释的方式而为包含界限的(inclusive)。此外,如权利要求书或详细描述中使用的术语“或”意图为“非排他性或”。

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