源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

python以环状形式组合排列图片并输出的方法

  • 时间:2020-06-27 18:28 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:python以环状形式组合排列图片并输出的方法
本文实例讲述了python以环状形式组合排列图片并输出的方法。分享给大家供大家参考。具体分析如下: 这段代码可以自定义一个空白画板,然后将指定的图片以圆环状的方式排列起来,用到了pil库,可以通过: pip install pil 的方式安装。 具体代码如下:
[u]复制代码[/u] 代码如下:
# -*- coding: utf-8 -*- __author__ = 'www.1sucai.cn' 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.1sucai.cn/images/1.png", "d:/www.1sucai.cn/images/2.png", "d:/www.1sucai.cn/images/3.png"] * 5 images = [Image.open(filename) for filename in imageFilenames] arrangeImagesInCircle(img, images) img.save("output.png")
希望本文所述对大家的Python程序设计有所帮助。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部