Python实现圆形图片裁剪与生成详解

拾光
拾光
发布时间:2026-10-13 | 4人浏览过
原创

本文介绍如何使用Python的PIL库将普通图片转换为圆形。通过读取图片并转换为RGBA模式,利用数学公式计算像素点到圆心的距离,筛选出圆内像素并复制到新图像中,最终保存为带有透明背景的PNG文件。

本文分享一段使用Python生成圆形图片的完整代码,供读者参考学习。

# -*- coding: utf-8 -*- 
""" 
__author__= 'Du' 
__creation_time__= '2018/1/5 9:08' 
""" 
 
import os, math 
from PIL import Image 
 
 
def circle(): 
 ima = Image.open("ball1.jpg").convert("RGBA") 
 # ima = ima.resize((600, 600), Image.ANTIALIAS) 
 size = ima.size 
 print(size) 
 
 # 因为是要圆形,所以需要正方形的图片 
 r2 = min(size[0], size[1]) 
 if size[0] != size[1]: 
 ima = ima.resize((r2, r2), Image.ANTIALIAS) 
 
 # 最后生成圆的半径 
 r3 = 60 
 imb = Image.new('RGBA', (r3*2, r3*2),(255,255,255,0)) 
 pima = ima.load() # 像素的访问对象 
 pimb = imb.load() 
 r = float(r2/2) #圆心横坐标 
 
 for i in range(r2): 
 for j in range(r2): 
 lx = abs(i-r) #到圆心距离的横坐标 
 ly = abs(j-r)#到圆心距离的纵坐标 
 l = (pow(lx,2) + pow(ly,2))** 0.5 # 三角函数 半径 
 
 if l < r3: 
 pimb[i-(r-r3),j-(r-r3)] = pima[i,j] 
 imb.save("test_circle.png") 
 
circle() 

生成的圆形图片效果如下所示:

如需了解更多相关技巧,请访问专题:《python图片处理操作》

以上内容即为本文的全部介绍,希望能为读者的学习提供便利,同时也欢迎大家继续支持本站。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表