python处理圆角图片、圆形图片的例子


Posted in Python onApril 25, 2014

效果图如下:

python处理圆角图片、圆形图片的例子
图1(头像图片剪成圆形的,其他为透明)

python处理圆角图片、圆形图片的例子
图2(给图片的4个角加椭圆)

以前没处理过,处理起来真是有点费力呀。

用到的模块:

import os, math
import Image
import ImageDraw

1 头像图片剪成圆形的,其他为透明

搜索了好久,没有找到比较好的方法,有个博客(不好意思,忘记博客地址了)用了一个比较诡异的方法,我试了一下,除了处理jpg图片没有格式转换,其他的都没有问题,我当时就先按照那个方法来了

def circle():
    ima = Image.open("test.jpg").convert("RGBA")
    size = ima.size
    # 因为是要圆形,所以需要正方形的图片
    r2 = min(size[0], size[1])
    if size[0] != size[1]:
        ima = ima.resize((r2, r2), Image.ANTIALIAS)
    imb = Image.new('RGBA', (r2, r2),(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+0.5) #到圆心距离的横坐标 
            ly = abs(j-r+0.5)#到圆心距离的纵坐标
            l  = pow(lx,2) + pow(ly,2)
            if l <= pow(r, 2):
                pimb[i,j] = pima[i,j]
    imb.save("test_circle.png")

这个方法是 计算每个像素到原点(就是图片中心点)的距离来画圆形的

2、给图片的4个角加椭圆

def circle_corder_image():
    im = Image.open("test.jpg").convert("RGBA")
    rad = 10  # 设置半径  
    circle = Image.new('L', (rad * 2, rad * 2), 0)
    draw = ImageDraw.Draw(circle)
    draw.ellipse((0, 0, rad * 2, rad * 2), fill=255)
    alpha = Image.new('L', im.size, 255)
    w, h = im.size
    alpha.paste(circle.crop((0, 0, rad, rad)), (0, 0))
    alpha.paste(circle.crop((0, rad, rad, rad * 2)), (0, h ? rad))
    alpha.paste(circle.crop((rad, 0, rad * 2, rad)), (w ? rad, 0))
    alpha.paste(circle.crop((rad, rad, rad * 2, rad * 2)), (w ? rad, h ? rad))
    im.putalpha(alpha)
    im.save('test_circle_corder.png')

用了这个方法后,想了一想,头像图片剪成圆形的,其他为透明,用这个方法也是可以的,于是画圆形有了下面的方法:

def circle_new():
    ima = Image.open("test.jpg").convert("RGBA")
    size = ima.size
    r2 = min(size[0], size[1])
    if size[0] != size[1]:
        ima = ima.resize((r2, r2), Image.ANTIALIAS)
    circle = Image.new('L', (r2, r2), 0)
    draw = ImageDraw.Draw(circle)
    draw.ellipse((0, 0, r2, r2), fill=255)
    alpha = Image.new('L', (r2, r2), 255)
    alpha.paste(circle, (0, 0))
    ima.putalpha(alpha)
    ima.save('test_circle.png')

虽然最后我想要的都有了,但是通过对这2个问题的研究,我看到了python 图片处理的强大,好多还值得我去学习研究。

Python 相关文章推荐
Python HTMLParser模块解析html获取url实例
Apr 08 Python
Python基于Matplotlib库简单绘制折线图的方法示例
Aug 14 Python
python中将函数赋值给变量时需要注意的一些问题
Aug 18 Python
pyqt5实现登录界面的模板
May 30 Python
Python跑循环时内存泄露的解决方法
Jan 13 Python
Python中实现输入一个整数的案例
May 03 Python
Django 如何使用日期时间选择器规范用户的时间输入示例代码详解
May 22 Python
使用 prometheus python 库编写自定义指标的方法(完整代码)
Jun 29 Python
用python写爬虫简单吗
Jul 28 Python
python 如何调用远程接口
Sep 11 Python
python爬取抖音视频的实例分析
Jan 19 Python
Python提取PDF指定内容并生成新文件
Jun 09 Python
python实现的阳历转阴历(农历)算法
Apr 25 #Python
Python实现的简单万年历例子分享
Apr 25 #Python
python实现simhash算法实例
Apr 25 #Python
python实现DNS正向查询、反向查询的例子
Apr 25 #Python
python网络编程之TCP通信实例和socketserver框架使用例子
Apr 25 #Python
python网络编程之UDP通信实例(含服务器端、客户端、UDP广播例子)
Apr 25 #Python
python中合并两个文本文件并按照姓名首字母排序的例子
Apr 25 #Python
You might like
新版mysql+apache+php Linux安装指南
2006/10/09 PHP
php 将bmp图片转为jpg等其他任意格式的图片
2009/06/29 PHP
PHP写日志的实现方法
2014/11/05 PHP
php实现网页缓存的工具类分享
2015/07/14 PHP
一个完整的php文件上传类实例讲解
2015/10/27 PHP
ThinkPHP5框架实现简单的批量查询功能示例
2018/06/07 PHP
php中的钩子理解及应用实例分析
2019/08/30 PHP
Javascript实现CheckBox的全选与取消全选的代码
2010/07/20 Javascript
jQuery使用hide方法隐藏页面上指定元素的方法
2015/03/30 Javascript
JQuery分屏指示器图片轮换效果实例
2015/05/21 Javascript
JS+CSS实现滑动切换tab菜单效果
2015/08/25 Javascript
Javascript类型系统之undefined和null浅析
2016/07/13 Javascript
JavaScript奇技淫巧44招【实用】
2016/12/11 Javascript
原生JS实现不断变化的标签
2017/05/22 Javascript
Node.js 使用jade模板引擎的示例
2018/05/11 Javascript
详解Vue单元测试case写法
2018/05/24 Javascript
微信小程序仿朋友圈发布动态功能
2018/07/15 Javascript
vue实现简易计算器功能
2021/01/20 Vue.js
[43:33]EG vs Spirit Supermajor 败者组 BO3 第一场 6.4
2018/06/05 DOTA
python使用xmlrpc实例讲解
2013/12/17 Python
全面解析Python的While循环语句的使用方法
2015/10/13 Python
Python使用SocketServer模块编写基本服务器程序的教程
2016/07/12 Python
R语言 vs Python对比:数据分析哪家强?
2017/11/17 Python
python中的turtle库函数简单使用教程
2018/07/23 Python
html5画布旋转效果示例
2014/01/27 HTML / CSS
Mio Skincare法国官网:身体紧致及孕期身体护理
2018/04/04 全球购物
美国眼镜网站:LensCrafters
2020/01/19 全球购物
自我鉴定的范文
2013/10/03 职场文书
口头翻译求职人自荐信
2013/12/07 职场文书
入党积极分子学习两会心得体会范文
2014/03/17 职场文书
租房协议书
2014/09/12 职场文书
教师工作总结范文2014
2014/11/10 职场文书
长城导游词300字
2015/01/30 职场文书
博士论文答辩开场白
2015/06/01 职场文书
2019个人工作自我评价范文(3篇)
2019/09/19 职场文书
2020优秀员工演讲稿(三篇)
2019/10/17 职场文书