一种将矩形图片处理成圆角图片的方法技术

技术编号:24356726 阅读:30 留言:0更新日期:2020-06-03 02:43
本发明专利技术涉及图片处理的技术领域,具体涉及一种将矩形图片处理成圆角图片的方法。包括以下步骤:步骤1、根据椭圆的计算公式:

A method of processing rectangle picture into fillet picture

【技术实现步骤摘要】
一种将矩形图片处理成圆角图片的方法
本专利技术涉及图片处理的
,具体涉及一种将矩形图片处理成圆角图片的方法。
技术介绍
现有的手机界面大多都是图片显示,一般的图片为矩形图片,图片的矩形直角边框看起来非常生硬,对用户来说具有很差的视觉体验,因此用户急需一种可以对图片的边角进行处理,带来良好的视觉体验的处理方法。
技术实现思路
本专利技术针对现有技术的问题提供一种将矩形图片处理成圆角图片的方法。为了解决上述技术问题,本专利技术采用如下技术方案:一种将矩形图片处理成圆角图片的方法,包括以下步骤:步骤1、根据椭圆的计算公式:计算出图片中不同的行数对应的列宽,(x1,y1)为椭圆中心像素坐标,y、x分别对应图片像素的行坐标和列坐标;步骤2、对于左上角的边角,利用椭圆的计算公式计算出每一行对应不同的列宽,进而对图片的左上角实现椭圆弧处理;步骤3、对于右上角的边角,利用椭圆的计算公式计算出每一行对应不同的列宽,进而对图片的右上角实现椭圆弧处理;步骤4、对于左下角的边角,根据变换公式:y2=row-y+1,其中row为矩形图片的总行数,然后根据y2的数值利用椭圆的计算公式,得到相对应的列数n值,对小于等于n的列数的像素赋值为0,从而在图片左下角实现椭圆弧处理;步骤5、对于右下角的边角,利用椭圆的计算公式计算出每一行对应不同的列宽,进而对图片的右上角实现椭圆弧处理;步骤6、对拥有四个椭圆弧处理的图片进行平滑处理,避免出现边角锯齿效应,得到输出图片。>进一步的,步骤6的具体步骤如下:步骤6.1、对拥有四个椭圆弧处理的图片进行扩展,得到扩展图片;步骤6.2、确定滤波参数以及边界条件;步骤6.3、按照确定的滤波参数以及边界条件对扩展图片进行滤波,得到输出图片。进一步的,针对每一行对应不同的列数n值,提前把n值计算出来,存储在查找表中。进一步的,步骤2的具体步骤:对于左上角的边角,椭圆中心坐标为(a,b),根据行数(1~b),利用椭圆的计算公式,分别计算出每行对应的列数n,对小于等于n的列数的像素赋值为0,从而在图片的左上角实现椭圆弧处理。进一步的,步骤3的具体步骤:对于右上角的边角,其每行对应的n值与左上角的相同,对从最大列开始向左n列的像素赋值为0,从而在图片的右上角实现椭圆弧处理。进一步的,步骤5的具体步骤:其每行对应的n值与左下角的相同,其不同之处在于对从最大列开始向左n列的像素赋值为0,从而在图片的右下角实现椭圆弧处理。本专利技术的有益效果:本专利技术可以将矩形图片的边角处理成椭圆弧形,通过平滑处理让图片的边角自然,避免出现边角锯齿效应,提高图片的视觉体验。具体实施方式为了便于本领域技术人员的理解,下面结合实施例对本专利技术作进一步的说明,实施方式提及的内容并非对本专利技术的限定。本专利技术实例提供了一种将矩形图片处理成圆角图片的方法,包括以下步骤:步骤1、根据椭圆的计算公式:计算出图片中不同的行数对应的列宽,(x1,y1)为椭圆中心像素坐标,y、x分别对应图片像素的行坐标和列坐标;具体地,根据y取不同的值,计算出相对应的x,x即为对应行的列宽。步骤2、对于左上角的边角,利用椭圆的计算公式计算出每一行对应不同的列宽,进而对图片的左上角实现椭圆弧处理;具体地,本实施例中,步骤2的具体步骤:对于左上角的边角,椭圆中心坐标为(a,b),根据行数(1~b),利用椭圆的计算公式,分别计算出每行对应的列数n,对小于等于n的列数的像素赋值为0,从而在图片的左上角实现椭圆弧处理。具体地,本实施例中,针对每一行对应不同的列数n值,提前把n值计算出来,存储在查找表中。这样设置,后续只需要根据行数y或者y2通过查找表得到对应的n值即可,方便快捷。步骤3、对于右上角的边角,利用椭圆的计算公式计算出每一行对应不同的列宽,进而对图片的右上角实现椭圆弧处理;具体地,本实施例中,步骤3的具体步骤:对于右上角的边角,其每行对应的n值与左上角的相同,对从最大列开始向左n列的像素赋值为0,从而在图片的右上角实现椭圆弧处理。步骤4、对于左下角的边角,根据变换公式:y2=row-y+1,其中row为矩形图片的总行数。这样设置变换公式的目的在于共用一个查找表,然后根据y2的数值在查找表中得到相对应的n值,对小于等于n的列数的像素赋值为0,从而在图片的左下角实现椭圆弧处理;步骤5、对于右下角的边角,利用椭圆的计算公式计算出每一行对应不同的列宽,进而对图片的右上角实现椭圆弧处理;具体地,本实施例中,步骤5的具体步骤:其每行对应的n值与左下角的相同,其不同之处在于对从最大列开始向左n列的像素赋值为0,从而在图片的右下角实现椭圆弧处理。由于像素是图片中的最小单位且具有一定的大小,在做圆角处理的过程中,会在圆弧边缘产生比较明显的锯齿效应,因此,对拥有四个椭圆弧处理的图片进行平滑处理,让图片的边角自然。具体步骤如下:步骤6.1、对拥有四个椭圆弧处理的图片进行扩展,得到扩展图片;具体地,由于滤波模板具有一定的大小,为了保证在进行点乘运算时原图片的各个像素都可以成为中心像素,需要对拥有四个椭圆弧的图片进行扩展。扩展的大小由滤波模板的大小而定。例如:滤波模板是3×3的矩阵,则扩展图片的行、列的大小需要在原图片的基础上增加2,具体如下:首先把原图片的行数、列数分别加2得到新的行数m、列数n,然后初始化一个m×n矩阵,并赋初值0,再把原图片数据赋值给矩阵的中心区域,从而得到原图片数据四周被0包围的扩展图片。对于其它大小的滤波模板,可使用类似的方法得到对应的扩展图片;步骤6.2、确定滤波参数以及边界条件;为了在图片四个椭圆弧除了边缘以外的区域使用统一的滤波参数,则参数分布应该以滤波中心呈中心对称,并根据与滤波中心的距离赋不同的值。对于3×3的滤波模板,考虑到硬件实现过程中除法不易实现,则使滤波参数总和为16。对于图片边缘像素,单独设计相对应的滤波模板。具体地,对于第一行像素,滤波模板第一行三个参数对应的图片像素值总是为0;对于最后一行像素而言,滤波模板第三行三个参数对应的图片像素值总是为0;对于第一列像素而言,滤波模板第一列三个参数对应的图片像素值总是为0;对于最后一列像素而言,滤波模板第三列三个参数对应的图片像素值总是为0。因此,对于图片不同边缘的像素,可设置相对应的三个参数为0,其他参数适当增大,进而可以在一定程度消除黑边的影响。在滤波的过程中,涉及到滤波边界判断的问题,每行参与计算的像素数可由查找表确定,根据行数,通过查找表得到相对应的n,则对应行参与计算的像素数为n+2。在n的基础上加2,一方面,滤波模板为3×3矩阵,可以使被椭圆弧分割的两个像素都可以成为滤波中心,另一方面,可以使圆弧周围像素值过渡更自然。步骤6.3、按照确定的滤波参数以及边界条件对扩展图片进行滤波,得到输出图片。使用滤波参数对扩展图片进行滤波操作。依次选取图片中3×3的像素与滤波模板进行点乘运算本文档来自技高网...

【技术保护点】
1.一种将矩形图片处理成圆角图片的方法,其特征在于:包括以下步骤:步骤1、根据椭圆的计算公式:

【技术特征摘要】
1.一种将矩形图片处理成圆角图片的方法,其特征在于:包括以下步骤:步骤1、根据椭圆的计算公式:计算出图片中不同的行数对应的列宽,(x1,y1)为椭圆中心像素坐标,y、x分别对应图片像素的行坐标和列坐标;
步骤2、对于左上角的边角,利用椭圆的计算公式计算出每一行对应不同的列宽,进而对图片的左上角实现椭圆弧处理;
步骤3、对于右上角的边角,利用椭圆的计算公式计算出每一行对应不同的列宽,进而对图片的右上角实现椭圆弧处理;
步骤4、对于左下角的边角,根据变换公式:y2=row-y+1,其中row为矩形图片的总行数,然后根据y2的数值利用椭圆的计算公式,得到相对应的列数n值,对小于等于n的列数的像素赋值为0,从而在图片左下角实现椭圆弧处理;
步骤5、对于右下角的边角,利用椭圆的计算公式计算出每一行对应不同的列宽,进而对图片的右上角实现椭圆弧处理;
步骤6、对拥有四个椭圆弧处理的图片进行平滑处理,避免出现边角锯齿效应,得到输出图片。


2.根据权利要求1所述的一种将矩形图片处理成圆角图片的方法,其特征在于:步骤6的具体步骤如下:
步骤6.1、对拥有四个椭圆弧处理的图片进行扩展,得到扩展图片;<...

【专利技术属性】
技术研发人员:孙雪强夏群兵王治龙
申请(专利权)人:深圳市爱协生科技有限公司东莞市爱协生智能科技有限公司
类型:发明
国别省市:广东;44

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

1