CN109688457A - 一种视频防遮挡方法、装置、电子设备及介质 - Google Patents
一种视频防遮挡方法、装置、电子设备及介质 Download PDFInfo
- Publication number
- CN109688457A CN109688457A CN201811626354.1A CN201811626354A CN109688457A CN 109688457 A CN109688457 A CN 109688457A CN 201811626354 A CN201811626354 A CN 201811626354A CN 109688457 A CN109688457 A CN 109688457A
- Authority
- CN
- China
- Prior art keywords
- view
- barrier bed
- barrage
- bed view
- exclusive
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/431—Generation of visual interfaces for content selection or interaction; Content or additional data rendering
- H04N21/4312—Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/485—End-user interface for client configuration
- H04N21/4858—End-user interface for client configuration for modifying screen layout parameters, e.g. fonts, size of the windows
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/488—Data services, e.g. news ticker
- H04N21/4884—Data services, e.g. news ticker for displaying subtitles
Abstract
本发明公开了一种视频防遮挡方法、装置、电子设备及介质,包括:获取当前视频中显示的目标对象的位置参数和尺寸参数;加载预存的透明图片作为遮挡层视图;根据所述尺寸参数调整所述遮挡层视图的尺寸,并根据所述位置参数设置所述遮挡层视图在所述当前视频中所处的位置,以覆盖所述目标对象,其中,所述遮挡层视图与弹幕视图预设为异或显示关系;当所述弹幕视图与所述遮挡层视图重叠时,基于所述异或显示关系,裁剪所述弹幕视图与所述遮挡层视图的重叠部分。解决了现有技术中的弹幕随机滑动,存在的遮挡关键对象,影响观众获取视频主要内容的技术问题。提高了观众获取视频内容的充分度。
Description
技术领域
本发明涉及互联网技术领域,尤其涉及一种视频防遮挡方法、装置、电子设备及介质。
背景技术
目前,随着网络通信技术的进步和宽带网络的提速,网络视频得到了越来越多的发展和应用,视频提供平台和直播平台等服务商为用户提供了丰富的视频体验。
为了加强用户在观看视频时的参与感和互动性,很多服务商都提供了弹幕功能。传统方案中的弹幕是在整个屏幕中随机滑动的,当弹幕的数量非常多的时候会出现弹幕将人脸等关键对象进行遮挡的问题,会严重影响用户观看视频节目的效果。
可见,现有技术中的弹幕随机滑动,存在遮挡关键对象,影响观众获取视频主要内容的技术问题。
发明内容
本申请实施例通过提供一种弹幕显示方法、装置、电子设备及介质,解决了现有技术中的弹幕随机滑动,存在的遮挡关键对象,影响观众获取视频主要内容的技术问题。
第一方面,提供一种视频防遮挡方法,包括:
获取当前视频中显示的目标对象的位置参数和尺寸参数;
加载预存的透明图片作为遮挡层视图;
根据所述尺寸参数调整所述遮挡层视图的尺寸,并根据所述位置参数设置所述遮挡层视图在所述当前视频中所处的位置,以覆盖所述目标对象,其中,所述遮挡层视图与弹幕视图预设为异或显示关系;
当所述弹幕视图与所述遮挡层视图重叠时,基于所述异或显示关系,裁剪所述弹幕视图与所述遮挡层视图的重叠部分。
可选的,所述目标对象为人脸。
可选的,所述加载预存的透明图片作为遮挡层视图,包括:定义ImageView类型的maskView对象;加载本地资源文件中预存的所述透明图片至所述maskView对象,以所述maskView对象作为所述遮挡层视图。
可选的,所述加载预存的透明图片至所述maskView对象,包括:通过Android系统提供的BitmapFactory.decodeFile(path)来加载所述透明图片,生成Bbitmap类型的bitmap对象,其中,path是预存的所述透明图片的存储路径信息;调用BitmapDrawable的构造函数Drawable drawable=newBitmapDrawable(bitmap)来将所述bitmap对象转变成Drawable类型的drawable对象;调用(ImageView)drawable方法将所述drawable对象转变成ImageView类型的ImageView对象,并将所述ImageView对象赋值给定义的所述maskView对象。
可选的,所述方法包括:调用paint.setXfermode(new PorterDuffXfermode(Mode.SRC_XOR))方法来构建异或显示关系的Paint对象;调用canvas对象中的canvas.drawBitmap(danmuVIew,0f,0f,paint)方法来将所述遮挡层视图与弹幕视图预设为异或显示关系,其中,danmuView标示的是所述弹幕视图,canvas标示的是所述遮挡层视图,当所述弹幕视图与所述遮挡层视图重叠时,基于paint对象所指定所述异或显示关系,裁剪所述弹幕视图与所述遮挡层视图的重叠部分。
可选的,所述方法还包括:获取所述当前视频中显示的所述目标对象的轮廓参数;在所述加载预存的透明图片作为遮挡层视图之后,还包括:采用所述轮廓参数修正所述遮挡层视图,使所述遮挡层视图修正为所述轮廓参数表征的形状。
可选的,所述采用所述轮廓参数修正所述遮挡层视图,包括:根据所述轮廓参数生成轮廓视图;叠加所述轮廓视图与所述遮挡层视图,以所述轮廓视图与所述遮挡层视图重叠的区域作为修正后的所述遮挡层视图。
第二方面,提供一种视频防遮挡装置,包括:
获取模块,用于获取当前视频中显示的目标对象的位置参数和尺寸参数;
加载模块,用于加载预存的透明图片作为遮挡层视图;
调整模块,用于根据所述尺寸参数调整所述遮挡层视图的尺寸,并根据所述位置参数设置所述遮挡层视图在所述当前视频中所处的位置,以覆盖所述目标对象,其中,所述遮挡层视图与弹幕视图预设为异或显示关系;
裁剪模块,用于当所述弹幕视图与所述遮挡层视图重叠时,基于所述异或显示关系,裁剪所述弹幕视图与所述遮挡层视图的重叠部分。
第三方面,提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现第一方面任一所述的方法。
第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现第一方面任一所述的方法。
本申请实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
本申请实施例提供的弹幕显示方法、装置、电子设备及介质,通过设置透明的遮挡层视图,并设置遮挡层视图与弹幕视图为异或显示关系,以在当弹幕视图与遮挡层视图重叠时,基于所述异或显示关系,裁剪弹幕视图与遮挡层视图的重叠部分,充分显示出目标对象。在弹幕视图与遮挡层视图不重叠时,遮挡层视图的透明化设置也能充分显示出目标对象。从而实现目标对象不受弹幕遮挡,以使用户能随时获得视频中目标对象的完整图像,提高视频关键信息获取的充分度。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例一中视频防遮挡方法的流程图;
图2为本申请实施例二中装置的结构示意图;
图3为本申请实施例中电子设备的结构示意图;
图4为本申请实施例中计算机可读存储介质的结构示意图。
具体实施方式
本申请实施例通过提供一种视频防遮挡方法、装置、电子设备及介质,解决了现有技术中的弹幕随机滑动,存在的遮挡关键对象,影响观众获取视频主要内容的技术问题。通过设置透明的遮挡层视图,并设置遮挡层视图与弹幕视图为异或显示关系,以在当弹幕视图与遮挡层视图重叠时,基于所述异或显示关系,裁剪弹幕视图与遮挡层视图的重叠部分,充分显示出目标对象。在弹幕视图与遮挡层视图不重叠时,遮挡层视图的透明化设置也能充分显示出目标对象。从而实现目标对象不受弹幕遮挡,以使用户能随时获得视频中目标对象的完整图像,提高视频关键信息获取的充分度。
为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
实施例一
如图1所示,本实施例提供了一种视频防遮挡方法,包括:
步骤S101,获取当前视频中显示的目标对象的位置参数和尺寸参数;
步骤S102,加载预存的透明图片作为遮挡层视图;
步骤S103,根据所述尺寸参数调整所述遮挡层视图的尺寸,并根据所述位置参数设置所述遮挡层视图在所述当前视频中所处的位置,以覆盖所述目标对象,其中,所述遮挡层视图与弹幕视图预设为异或显示关系;
步骤S104,当所述弹幕视图与所述遮挡层视图重叠时,基于所述异或显示关系,裁剪所述弹幕视图与所述遮挡层视图的重叠部分。
在本申请实施例中,所述方法可以应用于智能手机、笔记本、台式电脑和平板电脑等能播放视频的电子设备,在此不作限制。所述当前视频可以是直播视频,也可以是播放的以往录制的视频,在此也不作限制。较优的,本实施例提供的方法应用于安装安卓系统的电子设备。
所述目标对象可以是人脸、人体或移动的物体等,在此不作限制。在本申请实施例中,以所述目标对象是人脸为例来进行说明。
下面,结合图1来详细介绍本申请实施例提供的视频防遮挡方法的具体实施步骤:
步骤S101,获取当前视频中显示的目标对象的位置参数和尺寸参数。
具体来讲,可以先通过现有的识别模块来从当前视频中识别出目标对象,再通过识别模块返回目标对象的位置参数和尺寸参数。具体的识别方法可以是特征比对法,轮廓比对法,机器学习算法等,在此不作限制也不作一一列举。
假设目标对象为人脸,则人脸识别模块会识别出当前视频中的人脸,并返回人脸的位置参数和尺寸参数,该位置参数和尺寸参数可以是人脸在显示屏上的坐标信息,或人脸在当前视频中的坐标信息,或人脸距一预设标志位的距离和角度信息等,在此不作限制。
举例来讲,为了便于遮挡层视图的绘制,可以设置人脸识别模块将人脸识别成一个矩形图案(较优的,该矩形图案为能遮挡所述目标对象的最小矩形),然后将该矩形的左下角和右上角的坐标信息返回,我们将返回的坐标信息标记为(x1,y1)和(x2,y2)。设置该矩形的四边平行于当前视频显示边框,则通过坐标信息(x1,y1)和(x2,y2)可以计算出矩形图案的四个顶点的坐标:left(x1,y1),top(x1,y2),right(x2,y2),bottom(x2,y1),其中,left标示的是左下角顶点,top标示的是左上角顶点,right标示的是右上角顶点、bottom标示的是右下角顶点。这四个坐标可以表征目标对象的位置和尺寸。该坐标信息会随着人脸的移动而动态的进行改变。
步骤S102,加载预存的透明图片作为遮挡层视图。
在安卓系统中,设置遮挡层视图为maskView对象,以便于能通过maskView对象的可叠加显示、可与其他视图对象作异或等逻辑计算等性能来实现避免弹幕视图遮挡目标对象。
在本申请实施例中,本地资源文件中预先存储有透明图片,先在内存中定义ImageView类型的maskView对象。在每次接收到新的位置参数和尺寸参数后,触发加载本地资源文件中预存的所述透明图片至所述maskView对象,以所述maskView对象作为所述遮挡层视图。由于加载一张图片比绘制一张图片所带来的性能开销要小很多,通过加载预存的透明图片,而不是在每次接收到新的位置参数和尺寸参数后,实时绘制遮挡层视图能减小系统性能开销,节省一部分的系统资源信息。
在一种实施方式中,可以设置定义ImageView类型的maskView对象的具体定义方法是设置private ImageView maskView=null,即定义的时候将maskView对象初始化为null空对象。在每次接收到新的位置参数和尺寸参数(或新的坐标数据)后,先判断一下maskView是否被加载过,具体是通过判定maskView对象是否等于null空对象来判定的,如果maskView对象等于null空对象,说明此时maskview从来没有被加载过,此时就需要对其进行加载,否则就执行后续的逻辑。
在一种实施方式中,为了能最终实现遮挡层视图为maskView对象,需要对加载的透明图片作多次转换,具体为:先通过Android系统提供的BitmapFactory.decodeFile(path)来加载所述透明图片,生成Bbitmap类型的bitmap对象,其中,path是预存的所述透明图片的存储路径信息,然后,调用BitmapDrawable的构造函数Drawable drawable=newBitmapDrawable(bitmap)来将所述bitmap对象转变成Drawable类型的drawable对象。再通过强制类型转换,即调用(ImageView)drawable方法将所述drawable对象转变成ImageView类型的ImageView对象,并将所述ImageView对象赋值给定义的所述maskView对象。从而实现了生成所述maskView对象作为遮挡层视图。
在接收到新的位置参数和尺寸参数后,即触发加载透明图片,能够极大的提高视频页面的打开速度。进一步,本实施例在加载所述透明图片后,会对该加载后的透明图片进行缓存(缓存转变为ImageView类型的ImageView对象),通过缓存实现在下一次接收到新的位置参数和尺寸参数后,不需要再从新进行透明图片的加载和格式转换,直接从缓存中获取ImageView对象的赋值至maskView对象即可,极大地提高了加载速度,提高程序执行效率。
步骤S103,根据所述尺寸参数调整所述遮挡层视图的尺寸,并根据所述位置参数设置所述遮挡层视图在所述当前视频中所处的位置,以覆盖所述目标对象,其中,所述遮挡层视图与弹幕视图预设为异或显示关系。
在本申请实施例中,假设尺寸参数和位置参数为目标对象的坐标,则可以将maskView对象的显示位置至于该坐标所在位置,将maskView对象的尺寸缩放为该坐标表征的尺寸,来实现合适的覆盖目标对象。
举例来讲,假设置参数和尺寸参数为识别模块识别出的覆盖人脸的矩形图案的四个顶点坐标,eft(x1,y1),top(x1,y2),right(x2,y2),bottom(x2,y1),其中,left标示的是左下角顶点,top标示的是左上角顶点,right标示的是右上角顶点、bottom标示的是右下角顶点。
首先,根据数学坐标系的基本知识可以快速的得到人脸的中心点坐标是((x1+x2)/2,(y1+y2)/2)。人脸的宽度是(x2-x1)的绝对值,高度是(y2-y1)的绝对值,可以将宽度和高度分别标记为width和height。然后通过调用Math类中的Math.max(width,height)方法来获取height和width中的最大值信息,将获取到的最大值信息标记为maxLength。
然后,进行位置调节,构建布局位置的params对象,具体通过LayoutParamsparams=new LayoutParams()来构建。然后通过调用params.leftMargin=(x1+x2)/2和params.topMargin=(y1+y2)/2的方法来将人脸的中点坐标设置到params对象中。然后调用maskView对象中的maskview.setParams(params)来将maskView对象移动到人脸识别的中点位置去。
再进行尺寸调节,调用maskView对象中的maskview.setWidth(maxLength/2)和maskview.setHeight(maxLength/2)方法来设置maskView对象的具体大小信息。这样就实现了人脸上覆盖一层maskView对象的方法。
需要说明的是,上述例子中是设置maskView对象的遮挡层视图为maxLength/2的正方体,这样可能会导致人脸区域的遮挡层视图略大于人脸范围,但这样能避免由于人脸长宽不定,导致的缩放成长方形会出现的拉升变形等问题。
当然,在具体实施过程中,遮挡层视图也可以为长方形、圆形,椭圆形等,在此不作限制。
在另一种实施方式中,在每次坐标信息随着目标对象的移动而动态的进行改变时,会先判断目标对象的中心位置是否改变,并判断目标对象的尺寸参数是否变化。如果两者都没有变化,则不对maskView对象作更改;如果仅有中点位置变化,则只需要更新maskView对象到新的位置;如果仅尺寸参数变化,则只需要对maskView对象进行缩放,避免了重复的进行图片加载,重复的进行位置或尺寸缩放设置,进一步节约系统资源开销,提高处理效率。
下面介绍将所述遮挡层视图与弹幕视图预设为异或显示关系的方法:
Android系统提供的混合模式中有这样一种混合方法,当两个视图出现重叠的时候系统根据混合参数的不同自动对两个视图进行裁剪,故本实施例将混合参数传递成"异或"的时候,系统会保留两个视图非重叠的部分,重叠的部分的视图会被裁剪掉,根据这个特性巧妙地实现遮挡层视图和弹幕视图之间遮挡的逻辑需求。
具体可以先我们通过new PorterDuffXfermode(Mode.SRC_XOR)方法来构建一个混合模式的对象,其中混合模式设置的是Mode.SRC_XOR异或模式;再调用paint.setXfermode(new PorterDuffXfermode(Mode.SRC_XOR))方法来构建异或显示关系的Paint对象,其中,SRC_XOR表征异或关系。还需要将maskView对象(遮挡层视图)转变成一个canvas对象,具体的转变成canvas对象的方法是通过调用Canvas canvas=new Canvas(maskView)来实现转变的流程。然后,调用canvas对象中的canvas.drawBitmap(danmuVIew,0f,0f,paint)方法来将所述遮挡层视图与弹幕视图预设为异或显示关系,其中,danmuView标示的是所述弹幕视图,canvas标示的是所述遮挡层视图,当所述弹幕视图与所述遮挡层视图重叠时,基于paint对象所指定的所述异或显示关系,裁剪所述弹幕视图与所述遮挡层视图的重叠部分。
在另一种实施方式中,还可以对遮挡层视图进行修正,以获得更符合目标对象形状的遮挡层视图。即可以设置获取所述当前视频中显示的所述目标对象的轮廓参数。在根据所述位置参数和所述尺寸参数,调整加载透明图片获得的maskView对象后,再采用所述轮廓参数修正所述遮挡层视图,使所述遮挡层视图修正为所述轮廓参数表征的形状。具体采用所述轮廓参数修正所述遮挡层视图实现方式可以为根据所述轮廓参数生成轮廓视图;叠加所述轮廓视图与所述遮挡层视图,以所述轮廓视图与所述遮挡层视图重叠的区域作为修正后的所述遮挡层视图。
举例来讲,人脸识别模块识别出人脸的轮廓参数,并根据人脸轮廓生成轮廓视图,通过设置轮廓视图与遮挡层视图的逻辑关系,来实现将遮挡层视图裁剪为只保留与轮廓视图重叠的部分,这样就实现了对遮挡层视图的裁剪,使其更符合人脸的外形,则在后续通过遮挡层视图避免弹幕视图遮挡时,能尽量少的裁剪弹幕视图,在保证用户获取完整目标对象图像的基础上,尽量少的减少弹幕视图的被裁剪量,实现弹幕出现在人脸边缘的效果。
在另一种实施方式中,还可以不加载透明图片,而是实时绘制遮挡层视图。
实现方式为可以调用系统中的Paint类的构造函数来实例化Paint类型的mPaint对象;再调用系统中的Canvas对象,使用构建的所述mPaint对象,根据所述位置参数和所述尺寸参数在所述Canvas上绘制出maskView对象,所述maskView对象为透明的覆盖所述目标对象的遮挡层视图。
具体可以先构建画笔,即先调用系统中的Paint类的构造函数来实例化Paint类型的mPaint对象,具体命令为mPaint=new Paint()。再使用构建的mPaint对象作为画笔在Canvas上绘制出maskView对象,即调用canvas对象中的canvas.drawRect()命令来绘制maskView对象。例如,位置参数和尺寸参数为识别模块识别出的覆盖目标对象的矩形图案的四个顶点坐标,则通过canvas.drawRect(left,top,right,bottom,mPaint)绘制maskView对象,其中left,top,right,bottom分别为所述四个顶点坐标。从而绘制构建出一个顶点在left,top,right,bottom的矩形的maskView对象,即所述遮挡层视图,该视图的属性预设为透明。
进一步,在每次坐标信息随着目标对象的移动而动态的进行改变时,均会触发构建出一个新的maskView对象作为所述遮挡层视图替代之前的遮挡层视图,以保证maskView对象能够实时的跟随视频中目标对象的运动而运动。
步骤S104,当所述弹幕视图与所述遮挡层视图重叠时,基于所述异或显示关系,裁剪所述弹幕视图与所述遮挡层视图的重叠部分。
需要说明的是,现有的弹幕显示方式往往为从屏幕的最右边到屏幕的最左边的滚动方式,其具体实现过程为:先计算弹幕视图的起点坐标(tartX、StartY)s和终点坐标(endX、endY),一般来讲,startX=screenWidth,endX=0,screenWidth为视频在屏幕上显示的宽度。弹幕显示高度是一个随机值,往往endY=StartY,可以通过view.getHeight()函数来随机获取高度数值,假设该随机数就是StartY,从而确定了整个弹幕视图的坐标信息。接下来通过调用TranslateAnimationtranslateAnimation=new TranslateAnimation(startX,startY,endX,endY)方法来构建TranslateAnimation类型的translateAnimation对象。再调用translateAnimation.setDuration(time)方法来设置整个动画执行的时间周期,其中,time为时间周期。然后,通过调用view.startAnimation(translateAnimation)方法就可以实现整个弹幕视图的滚动动画过程。
采用前述的设置方式后,在当弹幕视图与遮挡层视图重叠时,基于所述异或显示关系,裁剪弹幕视图与遮挡层视图的重叠部分,充分显示出目标对象。在弹幕视图与遮挡层视图不重叠时,遮挡层视图的透明化设置也能充分显示出目标对象。从而实现目标对象不受弹幕遮挡,以使用户能随时获得视频中目标对象的完整图像,提高视频关键信息获取的充分度。
基于同一发明构思,本申请提供了实施例一对应的装置实施例,详见实施例二。
实施例二
本实施例提供一种视频防遮挡方法,如图2所示,包括:
获取模块201,用于获取当前视频中显示的目标对象的位置参数和尺寸参数;
加载模块202,用于加载预存的透明图片作为遮挡层视图;
调整模块203,用于根据所述尺寸参数调整所述遮挡层视图的尺寸,并根据所述位置参数设置所述遮挡层视图在所述当前视频中所处的位置,以覆盖所述目标对象,其中,所述遮挡层视图与弹幕视图预设为异或显示关系;
裁剪模块204,用于当所述弹幕视图与所述遮挡层视图重叠时,基于所述异或显示关系,裁剪所述弹幕视图与所述遮挡层视图的重叠部分。
在本申请实施例中,所述装置可以为智能手机、笔记本、台式电脑和平板电脑等能播放视频的电子设备,在此不作限制。所述当前视频可以是直播视频,也可以是播放的以往录制的视频,在此也不作限制。较优的,本实施例提供的装置为安装安卓系统的电子设备。
所述目标对象可以是人脸、人体或移动的物体等,在此不作限制。
由于本实施例所介绍的装置为实施本申请实施例一中方法所采用的装置,故而基于本申请实施例一中所介绍的方法,本领域所属技术人员能够了解本实施例的装置的具体实施方式以及其各种变化形式,所以在此对于该装置如何实现本申请实施例中的方法不再详细介绍。只要本领域所属技术人员实施本申请实施例中的方法所采用的设备,都属于本申请所欲保护的范围。
基于同一发明构思,本申请提供了实施例一对应的设备实施例,详见实施例三。
实施例三
本实施例提供一种电子设备,如图3所示,包括存储器310、处理器320及存储在存储器310上并可在处理器320上运行的计算机程序311,处理器320执行计算机程序311时实现:
获取当前视频中显示的目标对象的位置参数和尺寸参数;
加载预存的透明图片作为遮挡层视图;
根据所述尺寸参数调整所述遮挡层视图的尺寸,并根据所述位置参数设置所述遮挡层视图在所述当前视频中所处的位置,以覆盖所述目标对象,其中,所述遮挡层视图与弹幕视图预设为异或显示关系;
当所述弹幕视图与所述遮挡层视图重叠时,基于所述异或显示关系,裁剪所述弹幕视图与所述遮挡层视图的重叠部分。
由于本实施例所介绍的电子设备为实施本申请实施例一中方法所采用的设备,故而基于本申请实施例一中所介绍的方法,本领域所属技术人员能够了解本实施例的电子设备的具体实施方式以及其各种变化形式,所以在此对于该电子设备如何实现本申请实施例中的方法不再详细介绍。只要本领域所属技术人员实施本申请实施例中的方法所采用的设备,都属于本申请所欲保护的范围。
基于同一发明构思,本申请提供了实施例一对应的存储介质,详见实施例四。
实施例四
本实施例提供一种计算机可读存储介质400,如图4所示,其上存储有计算机程序411,该计算机程序411被处理器执行时实现:
获取当前视频中显示的目标对象的位置参数和尺寸参数;
加载预存的透明图片作为遮挡层视图;
根据所述尺寸参数调整所述遮挡层视图的尺寸,并根据所述位置参数设置所述遮挡层视图在所述当前视频中所处的位置,以覆盖所述目标对象,其中,所述遮挡层视图与弹幕视图预设为异或显示关系;
当所述弹幕视图与所述遮挡层视图重叠时,基于所述异或显示关系,裁剪所述弹幕视图与所述遮挡层视图的重叠部分。
在具体实施过程中,该计算机程序411被处理器执行时,可以实现实施例一中任一实施方式。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种视频防遮挡方法,其特征在于,包括:
获取当前视频中显示的目标对象的位置参数和尺寸参数;
加载预存的透明图片作为遮挡层视图;
根据所述尺寸参数调整所述遮挡层视图的尺寸,并根据所述位置参数设置所述遮挡层视图在所述当前视频中所处的位置,以覆盖所述目标对象,其中,所述遮挡层视图与弹幕视图预设为异或显示关系;
当所述弹幕视图与所述遮挡层视图重叠时,基于所述异或显示关系,裁剪所述弹幕视图与所述遮挡层视图的重叠部分。
2.如权利要求1所述的方法,其特征在于,
所述目标对象为人脸。
3.如权利要求1所述的方法,其特征在于,所述加载预存的透明图片作为遮挡层视图,包括:
定义ImageView类型的maskView对象;
加载本地资源文件中预存的所述透明图片至所述maskView对象,以所述maskView对象作为所述遮挡层视图。
4.如权利要求3所述的方法,其特征在于,所述加载预存的透明图片至所述maskView对象,包括:
通过Android系统提供的BitmapFactory.decodeFile(path)来加载所述透明图片,生成Bbitmap类型的bitmap对象,其中,path是预存的所述透明图片的存储路径信息;
调用BitmapDrawable的构造函数Drawable drawable=newBitmapDrawable(bitmap)来将所述bitmap对象转变成Drawable类型的drawable对象;
调用(ImageView)drawable方法将所述drawable对象转变成ImageView类型的ImageView对象,并将所述ImageView对象赋值给定义的所述maskView对象。
5.如权利要求1所述的方法,其特征在于,包括:
调用paint.setXfermode(new PorterDuffXfermode(Mode.SRC_XOR))方法来构建异或显示关系的Paint对象;
调用canvas对象中的canvas.drawBitmap(danmuVIew,0f,0f,paint)方法来将所述遮挡层视图与弹幕视图预设为异或显示关系,其中,danmuView标示的是所述弹幕视图,canvas标示的是所述遮挡层视图,当所述弹幕视图与所述遮挡层视图重叠时,基于paint对象所指定所述异或显示关系,裁剪所述弹幕视图与所述遮挡层视图的重叠部分。
6.如权利要求1所述的方法,其特征在于,还包括:获取所述当前视频中显示的所述目标对象的轮廓参数;
在所述加载预存的透明图片作为遮挡层视图之后,还包括:
采用所述轮廓参数修正所述遮挡层视图,使所述遮挡层视图修正为所述轮廓参数表征的形状。
7.如权利要求1所述的方法,其特征在于,所述采用所述轮廓参数修正所述遮挡层视图,包括:
根据所述轮廓参数生成轮廓视图;
叠加所述轮廓视图与所述遮挡层视图,以所述轮廓视图与所述遮挡层视图重叠的区域作为修正后的所述遮挡层视图。
8.一种视频防遮挡装置,其特征在于,包括:
获取模块,用于获取当前视频中显示的目标对象的位置参数和尺寸参数;
加载模块,用于加载预存的透明图片作为遮挡层视图;
调整模块,用于根据所述尺寸参数调整所述遮挡层视图的尺寸,并根据所述位置参数设置所述遮挡层视图在所述当前视频中所处的位置,以覆盖所述目标对象,其中,所述遮挡层视图与弹幕视图预设为异或显示关系;
裁剪模块,用于当所述弹幕视图与所述遮挡层视图重叠时,基于所述异或显示关系,裁剪所述弹幕视图与所述遮挡层视图的重叠部分。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-7任一所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-7任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811626354.1A CN109688457B (zh) | 2018-12-28 | 2018-12-28 | 一种视频防遮挡方法、装置、电子设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811626354.1A CN109688457B (zh) | 2018-12-28 | 2018-12-28 | 一种视频防遮挡方法、装置、电子设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109688457A true CN109688457A (zh) | 2019-04-26 |
CN109688457B CN109688457B (zh) | 2021-07-23 |
Family
ID=66190970
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811626354.1A Active CN109688457B (zh) | 2018-12-28 | 2018-12-28 | 一种视频防遮挡方法、装置、电子设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109688457B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111698533A (zh) * | 2020-06-12 | 2020-09-22 | 上海极链网络科技有限公司 | 一种视频处理方法、装置、设备和存储介质 |
CN111954060A (zh) * | 2019-05-17 | 2020-11-17 | 上海哔哩哔哩科技有限公司 | 弹幕蒙版的渲染方法、计算机设备及可读存储介质 |
CN112423110A (zh) * | 2020-08-04 | 2021-02-26 | 上海哔哩哔哩科技有限公司 | 直播视频数据生成方法、装置及直播视频播放方法、装置 |
CN113891154A (zh) * | 2020-07-02 | 2022-01-04 | 武汉斗鱼鱼乐网络科技有限公司 | 防止弹幕遮挡特定目标的方法、装置、介质及计算机设备 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104967922A (zh) * | 2015-06-30 | 2015-10-07 | 北京奇艺世纪科技有限公司 | 一种确定字幕添加位置的方法及装置 |
CN105592331A (zh) * | 2015-12-16 | 2016-05-18 | 广州华多网络科技有限公司 | 一种弹幕消息的处理方法、相关设备和系统 |
CN106126084A (zh) * | 2015-07-28 | 2016-11-16 | 掌阅科技股份有限公司 | 一种用于电纸墨水屏幕的显示方法 |
CN106303731A (zh) * | 2016-08-01 | 2017-01-04 | 北京奇虎科技有限公司 | 弹幕的显示方法及装置 |
CN106648337A (zh) * | 2016-12-30 | 2017-05-10 | 智车优行科技(北京)有限公司 | 显示展示列表中内容的方法和装置、电子设备 |
CN107147941A (zh) * | 2017-05-27 | 2017-09-08 | 努比亚技术有限公司 | 视频播放的弹幕显示方法、装置及计算机可读存储介质 |
CN107766038A (zh) * | 2017-10-24 | 2018-03-06 | 四川长虹电器股份有限公司 | 一种基于Android系统对UI控件进行轮廓剪裁及美化的方法 |
CN107809658A (zh) * | 2017-10-18 | 2018-03-16 | 维沃移动通信有限公司 | 一种弹幕内容显示方法和终端 |
US20180191987A1 (en) * | 2017-01-04 | 2018-07-05 | International Business Machines Corporation | Barrage message processing |
CN108401177A (zh) * | 2018-02-27 | 2018-08-14 | 上海哔哩哔哩科技有限公司 | 视频播放方法、服务器及视频播放系统 |
-
2018
- 2018-12-28 CN CN201811626354.1A patent/CN109688457B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104967922A (zh) * | 2015-06-30 | 2015-10-07 | 北京奇艺世纪科技有限公司 | 一种确定字幕添加位置的方法及装置 |
CN106126084A (zh) * | 2015-07-28 | 2016-11-16 | 掌阅科技股份有限公司 | 一种用于电纸墨水屏幕的显示方法 |
CN105592331A (zh) * | 2015-12-16 | 2016-05-18 | 广州华多网络科技有限公司 | 一种弹幕消息的处理方法、相关设备和系统 |
CN106303731A (zh) * | 2016-08-01 | 2017-01-04 | 北京奇虎科技有限公司 | 弹幕的显示方法及装置 |
CN106648337A (zh) * | 2016-12-30 | 2017-05-10 | 智车优行科技(北京)有限公司 | 显示展示列表中内容的方法和装置、电子设备 |
US20180191987A1 (en) * | 2017-01-04 | 2018-07-05 | International Business Machines Corporation | Barrage message processing |
CN107147941A (zh) * | 2017-05-27 | 2017-09-08 | 努比亚技术有限公司 | 视频播放的弹幕显示方法、装置及计算机可读存储介质 |
CN107809658A (zh) * | 2017-10-18 | 2018-03-16 | 维沃移动通信有限公司 | 一种弹幕内容显示方法和终端 |
CN107766038A (zh) * | 2017-10-24 | 2018-03-06 | 四川长虹电器股份有限公司 | 一种基于Android系统对UI控件进行轮廓剪裁及美化的方法 |
CN108401177A (zh) * | 2018-02-27 | 2018-08-14 | 上海哔哩哔哩科技有限公司 | 视频播放方法、服务器及视频播放系统 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111954060A (zh) * | 2019-05-17 | 2020-11-17 | 上海哔哩哔哩科技有限公司 | 弹幕蒙版的渲染方法、计算机设备及可读存储介质 |
CN111954060B (zh) * | 2019-05-17 | 2022-05-10 | 上海哔哩哔哩科技有限公司 | 弹幕蒙版的渲染方法、计算机设备及可读存储介质 |
CN111698533A (zh) * | 2020-06-12 | 2020-09-22 | 上海极链网络科技有限公司 | 一种视频处理方法、装置、设备和存储介质 |
CN113891154A (zh) * | 2020-07-02 | 2022-01-04 | 武汉斗鱼鱼乐网络科技有限公司 | 防止弹幕遮挡特定目标的方法、装置、介质及计算机设备 |
CN113891154B (zh) * | 2020-07-02 | 2023-09-26 | 武汉斗鱼鱼乐网络科技有限公司 | 防止弹幕遮挡特定目标的方法、装置、介质及计算机设备 |
CN112423110A (zh) * | 2020-08-04 | 2021-02-26 | 上海哔哩哔哩科技有限公司 | 直播视频数据生成方法、装置及直播视频播放方法、装置 |
US11863801B2 (en) | 2020-08-04 | 2024-01-02 | Shanghai Bilibili Technology Co., Ltd. | Method and device for generating live streaming video data and method and device for playing live streaming video |
Also Published As
Publication number | Publication date |
---|---|
CN109688457B (zh) | 2021-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109688457A (zh) | 一种视频防遮挡方法、装置、电子设备及介质 | |
CN110136229B (zh) | 一种用于实时虚拟换脸的方法与设备 | |
TWI490772B (zh) | 自繪控制項的螢幕適配方法及裝置 | |
CN109166159B (zh) | 获取图像的主色调的方法、装置及终端 | |
JP7112516B2 (ja) | 画像表示方法及びその装置、記憶媒体、電子装置、並びにコンピュータプログラム | |
CN109102560B (zh) | 三维模型渲染方法及装置 | |
CN109771951B (zh) | 游戏地图生成的方法、装置、存储介质和电子设备 | |
CN108446698A (zh) | 在图像中检测文本的方法、装置、介质及电子设备 | |
US20140270544A1 (en) | Image Editing Method and System | |
CN109151540A (zh) | 视频图像的交互处理方法及装置 | |
CN110049351A (zh) | 视频流中人脸变形的方法和装置、电子设备、计算机可读介质 | |
CN106658139B (zh) | 一种焦点控制方法及装置 | |
CN109697689A (zh) | 存储介质、电子设备、视频合成方法及装置 | |
CN104813361A (zh) | 感知内容的视频尺寸调整 | |
CN105407323A (zh) | 一种监控视频的分屏方法及装置 | |
CN108694719A (zh) | 图像输出方法和装置 | |
CN109710365A (zh) | 一种弹幕显示方法、装置、电子设备及介质 | |
CN108170282A (zh) | 用于控制三维场景的方法和装置 | |
CN111008928A (zh) | 一种实现图像雨滴滴落、划动波纹特效的方法及系统 | |
CN111861869A (zh) | 用于人像美化及防止背景扭曲的图像处理方法及装置 | |
CN107861711B (zh) | 页面适配方法及装置 | |
CN104657097A (zh) | 一种波浪型动态图像的显示方法和设备 | |
CN106909263A (zh) | 三维图像的交互展示方法及系统 | |
CN110502305B (zh) | 一种动态界面的实现方法、装置及相关设备 | |
WO2024002064A1 (zh) | 三维模型构建方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |