python生成圆形图片的方法

yipeiwu_com6年前Python基础

本文实例为大家分享了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 中使用 PyMySQL模块操作数据库的方法

之前用的Python2,连接MySQL用的是MySQLdb。现在换成python3.x了,由于 MySQLdb 模块还不支持 Python3.x,所以 Python3.x 如果想连接My...

深入flask之异步非堵塞实现代码示例

官方其实已经给出了方案,只不过藏的有点深,在加上网上有很多不太靠谱的帖子误导了我(当然不排除我没理解的原因哈)。所以为了让有些朋友的少走点弯路,也为给自己做个备忘。 完整代码:https...

Python中使用插入排序算法的简单分析与代码示例

问题描述 将一组随机排列的数字重新按照从小到大的顺序排列。 插入算法 每次从数组中取一个数字,与现有数字比较并插入适当位置。 如此重复,每次均可以保持现有数字按照顺序排列,直到数字取完,...

python类中super() 的使用解析

描述 super() 函数是用于调用父类(超类)的一个方法。 super 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会涉及到查找顺序...

简单介绍Python的Django框架加载模版的方式

一般说来,你会把模板以文件的方式存储在文件系统中,但是你也可以使用自定义的 template loaders 从其他来源加载模板。 Django有两种方法加载模板  &n...