python画九宫格,Python九宫格
原理
1.Python做的九宫格图像生成器,包装exe文件。用户无需部署和安装Python的开发环境,即可在本地运行程序,快速生成九宫格图像。
2.继续用PIL图书馆画小区域,把它们剪下来,存为新的小图片。
实例
假设每个网格的宽度和高度分别为W和H,网格的左上角和右下角在行(从0开始计数)和列(从0开始计数)的坐标分别为(col * w,row * h),(col * w w,r * h h)。
#-*-编码:UTF-8-*-
#把一幅画分成九个,九个正方形
importtkinterastk
fromPILimportImage
importsys
#首先将输入图像填充到正方形中
deffill_image(图像):
宽度,高度=image.size
#选择长度和宽度中较大的值作为新图片的
new _ image _ length=widthiftwidthheightelheight
#生成新图片[白色背景]
New _ image=image.new (image.mode,(new _ image _ length,new _ image _ length),color= white) #注意这个函数!
#将以前的图片粘贴到新图片上,使其居中
IfthHeight : #如果原图像宽度大于高度,则填充图像的垂直尺寸#(x,y) binary表示粘贴图像相对于下一个图像的起始位置,下一个图像是一个坐标点。
new_image.paste(image,(0,int((new _ image _ length-height)/2)))
else:
new_image.paste(image,(int((new_image_length-width)/2),0))
returnnew新图像
#分割画面
defcut_image(图像):
宽度,高度=image.size
Item_width=int(width/3)#因为朋友圈有3张图片。
box_list=[]
#(左、上、右、下)
foriinrange(0,3):
forjinrange(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 inbox _ list]
返回图像列表
#保存图片
defsave _ images(image _ list):
指数=1
forimageinimage_list:
image.save(str(index)。巴布亚新几内亚,巴布亚新几内亚)
指数=1
#点击按钮实现图像分割。
defcTofClicked():
File_path=str(entryCd.get())#获取待分割图片的路径。
image=Image.open(file_path)
#image.show()
image=fill_image(图像)
图像列表=剪切图像(图像)
保存图像(图像列表)
Labctof.config (text=九宫格图片已经诞生,请到程序所在的目录查看!)
#表单
top=tk。Tk()
Top.title(九宫格图片生成器)
Elctof=tk.label (top,text=请输入要转换的图像路径:,height=4,\
width=40,fg=blue )
labelcTof.pack()
Entry=tk.entry (top,text= 0) #文本框获取图片路径。
entryCd.pack()
标签_提示=tk。Label(top,text=请检查图像路径是否输入正确!,高度=2,\
width=40,fg=gray )
label_tip.pack()
BtnCal=tk。Button(top,text=点击生成九宫格图,FG= red ,BG= yellow ,command=ctofclicked) #点击回调函数
btnCal.pack()
Top.mainloop()#执行主循环。以上是python九宫格图片原理。希望对你有帮助。更多python学习方向:Python基础课程
本教程运行环境:windows7系统,Python 3.9.1,DELL G3电脑。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。