温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

使用python怎么实现一个九宫格图片

发布时间:2021-04-25 14:58:15 来源:亿速云 阅读:355 作者:Leah 栏目:编程语言

这篇文章给大家介绍使用python怎么实现一个九宫格图片,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

python的数据类型有哪些?

python的数据类型:1. 数字类型,包括int(整型)、long(长整型)和float(浮点型)。2.字符串,分别是str类型和unicode类型。3.布尔型,Python布尔类型也是用于逻辑运算,有两个值:True(真)和False(假)。4.列表,列表是Python中使用最频繁的数据类型,集合中可以放任何数据类型。5. 元组,元组用”()”标识,内部元素用逗号隔开。6. 字典,字典是一种键值对的集合。7. 集合,集合是一个无序的、不重复的数据组合。

1、原理

用Python制作的九宫格图像生成器包装exe文件,用户无需部署安装Python的开发环境,即可在当地运行该程序,快速生成九宫格图像。

实现原理很简单,就是用PIL库不断画小区域,切下来存储成新的小图片。

2、实例

假设每一个格子的宽和高分别是w、h,那么第row行(从0开始计数),第col列(从0开始计数)的格子左上角坐标和右下角坐标分别是(col * w, row * h),(col * w + w, r * h + h)。

# -*- coding: UTF-8 -*- # 将一张图片分成九张,九宫格 import tkinter as tk from PIL import Image import sys     #先将 input image 填充为正方形 def fill_image(image):  width, height = image.size  #选取长和宽中较大值作为新图片的  new_image_length = width if width > height else height  #生成新图片[白底]  new_image = Image.new(image.mode, (new_image_length, new_image_length), color='white') #注意这个函数!  #将之前的图粘贴在新图上,居中  if width > height:#原图宽大于高,则填充图片的竖直维度 #(x,y)二元组表示粘贴上图相对下图的起始位置,是个坐标点。  new_image.paste(image, (0, int((new_image_length - height) / 2)))  else:  new_image.paste(image, (int((new_image_length - width) / 2),0))  return new_image   # 分割图片 def cut_image(image):  width, height = image.size  item_width = int(width / 3) #因为朋友圈一行放3张图。  box_list = []  # (left, upper, right, lower)  for i in range(0,3):  for j in range(0,3):  #print((i*item_width,j*item_width,(i+1)*item_width,(j+1)*item_width))  box = (j*item_width,i*item_width,(j+1)*item_width,(i+1)*item_width)  box_list.append(box)  image_list = [image.crop(box) for box in box_list]  return image_list   #保存图片 def save_images(image_list):  index = 1  for image in image_list:  image.save(str(index) + '.png', 'PNG')  index += 1     # 点击按钮,实现图片分割 def cTofClicked():  file_path=str(entryCd.get()) # 获取要进行分割的图片路径  image = Image.open(file_path)  #image.show()  image = fill_image(image)  image_list = cut_image(image)  save_images(image_list)  labelcTof.config(text="九宫格图片已生,请在程序所在目录查看!")   # 窗体 top=tk.Tk() top.title('九宫格图片生成器') labelcTof=tk.Label(top,text="请输入要进行转换的图片路径:",height=4,\  width=40,fg="blue") labelcTof.pack() entryCd=tk.Entry(top,text='0') # 文本框,获取图片路径 entryCd.pack() label_tip=tk.Label(top,text="请检查图片路径是否输入正确!",height=2,\  width=40,fg="gray") label_tip.pack() btnCal=tk.Button(top,text="点击生成九宫格图片",fg="red",bg="yellow",command=cTofClicked) # 点击回调函数 btnCal.pack()   top.mainloop() # 执行主循环

关于使用python怎么实现一个九宫格图片就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI