python绘制圆角正方形_【Python】制作圆角图像的两种方案对比

本文介绍了使用Python实现圆角头像的两种方案,对比了它们的效果。方案1通过PIL库直接处理原图,存在圆角锯齿问题;方案2采用圆角PNG与原图叠加,实现无锯齿且与PS效果相当。适用于制作高清头像。

需求:现有200*200像素JPG图片,需制作成129*129像素的PNG圆角头像。

两种方案。

方案1:直接将JPG图片,利用灰度图mask,叠加得到圆角PNG。

优势:方便,不需动手P个透明模板底图。

缺点:圆角锯齿非常明显,不能用于高清图,与PS使用剪切蒙版制作的圆角相比,锯齿明显。

效果图:左图为PS结果(129*129半径为10的圆角矩形作为蒙版),右图为代码执行结果。

?i=20200229133943138.png

可见,PS在处理圆角的时候,增加了过渡的效果,而Python程序则比较简陋,直接以锯齿状示人。所以直接在原图上用圆角代码硬切割效果不好(或者说还需要进一步用代码优化)。

Python硬切割圆角的代码如下,效果图及解释见我的

# 使用 PIL 将图象处理为圆角矩形

# Success

from PIL import Image, ImageDraw

radii=10

img = Image.open('flag.jpg')

# 矩形图像转为圆角矩形

def circle_corner(img, radii):

# 画圆(用于分离4个角)

circle = Image.new('L', (radii * 2, radii * 2), 0) # 创建黑色方形

# circle.save('1.jpg','JPEG',qulity=100)

draw = ImageDraw.Draw(circle)

draw.ellipse((0, 0, radii * 2, radii * 2), fill=255) # 黑色方形内切白色圆形

# circle.save('2.jpg','JP

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值