python以环状形式组合排列图片并输出的方法
python以环状形式组合排列图片并输出的方法
本文实例讲述了python以环状形式组合排列图片并输出的方法。分享给大家供大家参考。具体分析如下:
这段代码可以自定义一个空白画板,然后将指定的图片以圆环状的方式排列起来,用到了pil库,可以通过:
pip install pil 的方式安装。
具体代码如下:
__author__ = 'www.jb51.net'
import math
from PIL import Image
def arrangeImagesInCircle(masterImage, imagesToArrange):
imgWidth, imgHeight = masterImage.size
#we want the circle to be as large as possible.
#but the circle shouldn't extend all the way to the edge of the image.
#If we do that, then when we paste images onto the circle, those images will partially fall over the edge.
#so we reduce the diameter of the circle by the width/height of the widest/tallest image.
diameter = min(
imgWidth - max(img.size[0] for img in imagesToArrange),
imgHeight - max(img.size[1] for img in imagesToArrange)
)
radius = diameter / 2
circleCenterX = imgWidth / 2
circleCenterY = imgHeight / 2
theta = 2*math.pi / len(imagesToArrange)
for i in range(len(imagesToArrange)):
curImg = imagesToArrange[i]
angle = i * theta
dx = int(radius * math.cos(angle))
dy = int(radius * math.sin(angle))
#dx and dy give the coordinates of where the center of our images would go.
#so we must subtract half the height/width of the image to find where their top-left corners should be.
pos = (
circleCenterX + dx - curImg.size[0]/2,
circleCenterY + dy - curImg.size[1]/2
)
masterImage.paste(curImg, pos)
img = Image.new("RGB", (500,500), (255,255,255))
#下面的三个图片是3个 50x50 的pngs 图片,使用了绝对路径,需要自己进行替换成你的图片路径
imageFilenames = ["d:/www.jb51.net/images/1.png", "d:/www.jb51.net/images/2.png", "d:/www.jb51.net/images/3.png"] * 5
images = [Image.open(filename) for filename in imageFilenames]
arrangeImagesInCircle(img, images)
img.save("output.png")
希望本文所述对大家的Python程序设计有所帮助。
python以环状形式组合排列图片并输出的方法相关推荐
- c语言两种排序方法的组合,排列和组合算法的实现方法_C语言经典案例
排列和组合算法是考查递归的常见算法,这两种算法能用递归简洁地实现. 本人在经过多次摸索和思考之后,总结如下,以供参考. 程序代码如下: #include #include char array[] = ...
- python把一堆图片分成n份,用Python一键生成炫酷九宫格图片,火了朋友圈
原标题:用Python一键生成炫酷九宫格图片,火了朋友圈 作为一个男同胞来说,为了给女朋友拍一张美美的照片,着实需要花费很大的时间和精力,不仅仅需要从众多的图片中精心挑选,而且还需要有着超强的图片精修 ...
- arp协议分析python编程实现arp欺骗抓图片
arp协议分析&python编程实现arp欺骗抓图片 序 学校tcp/ip协议分析课程老师布置的任务,要求分析一种网络协议并且研究安全问题并编程实现,于是我选择了研究arp协议,并且利用pyt ...
- Python爬虫抓取指定网页图片代码实例
更多编程教程请到:菜鸟教程 https://www.piaodoo.com/ 友情链接:好看站 http://www.nrso.net/ 高州阳光论坛https://www.hnthzk.com/ 想 ...
- Python+爬虫技术获取斗鱼直播图片(整理)
核心内容: 1.爬虫的基本原理 2.利用Python爬取数据的方法(使用urllib爬取数据) 3.从斗鱼直播平台爬取图片 最近因为工作的原因,要利用爬虫的相关技术,获取html网页相关的数据,特意总 ...
- Python:data:image/png;base64图片编码解码
编码后的内容,可以在浏览器中直接打开,提示:先去掉回车 data类型的Url大致有下面几种形式 data:,<文本数据> data:text/plain,<文本数据> data ...
- 利用 Python 去除 PDF 水印(和图片水印原理一样)
前言 今天介绍下用 Python 去除 PDF (图片)的水印.思路很简单,代码也很简洁. 首先来考虑 Python 如何去除图片的水印,然后再将思路复用到 PDF 上面. 原理 这张图片是前几天整理 ...
- python人像变卡通,Python实现将照片变成卡通图片的方法【基于opencv】
本文实例讲述了Python实现将照片变成卡通图片的方法.分享给大家供大家参考,具体如下: 之前的文章介绍了使用Photoshop将照片变成卡通图片,今次介绍用代码来实现这项任务,可以就此探查各种滤镜的 ...
- Python seaborn可视化:组合多个seaborn可视化结果并使得组合结果图像共享X轴、使用matplotlib的subplots子图函数的gridspec_kw参数指定子图的相对大小或者比率
Python seaborn可视化:组合多个seaborn可视化结果并使得组合结果图像共享X轴.使用matplotlib的subplots子图函数的gridspec_kw参数指定子图的相对大小或者比率 ...
最新文章
- 关于 TApplication 详解 三 ---- TComponent
- Python零碎知识(7):硬性出错
- Perl正则表达式--练习1
- 浅谈C/C++中的typedef和#define
- 使用ArcGIS JavaScript API 3.18 加载天地图
- Linux下如何定位Java进程CPU利用率过高原因
- c语言枚举法礼泡声次数,C语言枚举类型举例
- html pie标签,pie.html
- 解决Debian 11系统缺少无线网卡固件rtl8192cfw.bin
- Software Testing - UI自动化测试常用设计模式之原型(Java)
- 基层群众工作存在的问题_当前基层群众在移风易俗方面存在的问题
- fedora11上安装fcitx
- oracle修改查询结果,Oracle使用查询结果更新表的方法
- web应用开发平台,微信web开发者
- 基于ssm框架的校园二手交易平台
- 大数据开发实战教程目录
- 15.1 DIB 文件格式
- world wind java sdk_科学网—用worldwind java SDK开发应用程序 - 谢安涛的博文
- vue学习实现待办事项功能
- 用MATLAB进行大地测量学上的子午线弧长计算
热门文章
- 成都双流区链家网租房python数据可视化
- HNU程序设计-炸弹
- 筋膜枪之原理及方案浅析
- Netflix 推荐系统
- 什么是Mocking framework?它有什么用?
- 安防行业S2B2C系统网站智能化大数据,S2B2C平台助力企业效率成倍提升
- burpsuite的基本使用
- Captcha must be filled out.
- 问题解决:Warning: date() [function.date]: It is not safe to rely on the system's timezone settings. You.
- jq替代html的写法,jquery替代品 使用Jquery能完全替代js吗