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

本文实例讲述了python以环状形式组合排列图片并输出的方法。分享给大家供大家参考。具体分析如下:

这段代码可以自定义一个空白画板,然后将指定的图片以圆环状的方式排列起来,用到了pil库,可以通过:
pip install pil 的方式安装。

具体代码如下:

复制代码 代码如下:

# -*- coding: utf-8 -*-
__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程序设计有所帮助。

时间: 2024-09-14 13:24:47

python以环状形式组合排列图片并输出的方法_python的相关文章

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

 这篇文章主要介绍了python以环状形式组合排列图片并输出的方法,涉及Python使用pil库操作图片的技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了python以环状形式组合排列图片并输出的方法.分享给大家供大家参考.具体分析如下: 这段代码可以自定义一个空白画板,然后将指定的图片以圆环状的方式排列起来,用到了pil库,可以通过: pip install pil 的方式安装. 具体代码如下: 代码如下: # -*- coding: utf-8 -*- __autho

Python获取网页上图片下载地址的方法_python

本文实例讲述了Python获取网页上图片下载地址的方法.分享给大家供大家参考.具体如下: 这里获取网页上图片的下载地址是正在写的数据采集中的一段,代码如下: 复制代码 代码如下: #!/user/bin/python3 import urllib2 from HTMLParser import HTMLParser class MyHtmlParser(HTMLParser):     links = []     def handle_starttag(self, tag, attrs):  

python通过pil模块获得图片exif信息的方法_python

本文实例讲述了python通过pil模块获得图片exif信息的方法.分享给大家供大家参考.具体分析如下: python的pil模块功能超级强大,不但可以用来处理图片也可以用来获取图片的exif数据 from PIL import Image #code from http://www.jb51.net img = Image.open('img.jpg') exif_data = img._getexif() 希望本文所述对大家的Python程序设计有所帮助. 以上是小编为您精心准备的的内容,在

python通过exifread模块获得图片exif信息的方法_python

本文实例讲述了python通过exifread模块获得图片exif信息的方法.分享给大家供大家参考.具体分析如下: python可通过exifread模块获得图片exif信息 exifread模块的下载地址:https://pypi.python.org/pypi/ExifRead 也可以通过pip进行安装:pip install exifread import exifread # Open image file for reading (binary mode) f = open(path_

Python比较两个图片相似度的方法_python

本文实例讲述了Python比较两个图片相似度的方法.分享给大家供大家参考.具体分析如下: 这段代码实用pil模块比较两个图片的相似度,根据实际实用,代码虽短但效果不错,还是非常靠谱的,前提是图片要大一些,太小的图片不好比较.附件提供完整测试代码和对比用的图片. 复制代码 代码如下: #!/usr/bin/python # Filename: histsimilar.py # -*- coding: utf-8 -*- import Image def make_regalur_image(img

python获取图片颜色信息的方法_python

本文实例讲述了python获取图片颜色信息的方法.分享给大家供大家参考.具体分析如下: python的pil模块可以从图片获得图片每个像素点的颜色信息,下面的代码演示了如何获取图片所有点的颜色信息和每种颜色的数量. from PIL import Image image = Image.open("jb51.gif") image.getcolors() 返回结果如下 复制代码 代码如下: ..., (44, (72, 64, 55, 255)), (32, (231, 208, 14

Python遍历目录并批量更换文件名和目录名的方法_python

本文实例讲述了Python遍历目录并批量更换文件名和目录名的方法.分享给大家供大家参考,具体如下: #encoding=utf-8 #author: walker #date: 2014-03-07 #summary: 深度遍历指定目录,并将子目录和文件名改为小写 #注意,此程序只针对windows,windows下文件(夹)名不区分大小写 import os import os.path import shutil #读入指定目录并转换为绝对路径 rootdir = raw_input('ro

python实现基于两张图片生成圆角图标效果的方法_python

本文实例讲述了python实现基于两张图片生成圆角图标效果的方法.分享给大家供大家参考.具体分析如下: 使用pil的蒙版功能,将原图片和圆角图片进行叠加,并将圆角图片作为mask,生成新的圆角图片 from PIL import Image flower = Image.open('flower.png') border = Image.open('border.png') source = border.convert('RGB') flower.paste(source, mask=bord

Python实现拷贝多个文件到同一目录的方法_python

本文实例讲述了Python实现拷贝多个文件到同一目录的方法.分享给大家供大家参考,具体如下: 有一个文件,里面存有多个文件名,一个文件名一行.如果想把这些文件拷贝到一个目录,可以用下面的代码.下面的代码应该是跨系统的,除了分隔文件全路径那一句.下面的代码假设拷贝所有文件到当前目录的tmp子目录下,目录需先创建. #encoding=utf-8 import sys import shutil if len(sys.argv) < 2: print u'缺少参数文件名' exit(-1) par_