位置: IT常识 - 正文
推荐整理分享python九宫格图片的原理(python简单九宫格拼图游戏),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:python重排九宫,python画成一个九宫格,python九宫格数字游戏,python 九宫格数独,python简单九宫格拼图游戏,python简单九宫格拼图游戏,python画成一个九宫格,python画成一个九宫格,内容如对您有帮助,希望把文章链接给更多的朋友!
原理
1、用Python制作的九宫格图像生成器包装exe文件,用户无需部署安装Python的开发环境,即可在当地运行该程序,快速生成九宫格图像。
2、用PIL库不断画小区域,切下来存储成新的小图片。
实例
假设每一个格子的宽和高分别是w、h,那么第row行(从0开始计数),第col列(从0开始计数)的格子左上角坐标和右下角坐标分别是(col * w, row * h),(col * w + w, r * h + h)。
#-*-coding:UTF-8-*-#将一张图片分成九张,九宫格importtkinterastkfromPILimportImageimportsys#先将inputimage填充为正方形deffill_image(image):width,height=image.size#选取长和宽中较大值作为新图片的new_image_length=widthifwidth>heightelseheight#生成新图片[白底]new_image=Image.new(image.mode,(new_image_length,new_image_length),color='white')#注意这个函数!#将之前的图粘贴在新图上,居中ifwidth>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))returnnew_image#分割图片defcut_image(image):width,height=image.sizeitem_width=int(width/3)#因为朋友圈一行放3张图。box_list=[]#(left,upper,right,lower)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)forboxinbox_list]returnimage_list#保存图片defsave_images(image_list):index=1forimageinimage_list:image.save(str(index)+'.png','PNG')index+=1#点击按钮,实现图片分割defcTofClicked():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九宫格图片的原理,希望对大家有所帮助。更多Python学习指路:Python基础教程
上一篇:Python数学建模三剑客之Matplotlib(数学建模python 怎么用)
下一篇:Css3入门详解(css 入门)
友情链接: 武汉网站建设