如何将多张图弄成9宫格,把一张图做成9宫格
如何把多张图做成9格,一张图做成9格?应用场景?
最初的想法是:想把一张图剪成九等分,发布到微信朋友圈。剪下来的图片上传到朋友圈,我发现微信没有按照我排的序号排版。这个结果很费时间。让我深思一下,有没有一种可以直接拼接成九宫格图的?经过重新设计,答案是肯定的。
它是这样实现的:
1.先创建一张(黑白灰)图片(大小和原图一样大(可能稍微小1-2px像素)。尺寸的创建是在程序内部完成的,没有我们的干预,黑、白、灰都是我们自己创建的)。
2.将原始图片的每个副本添加到新创建的黑白灰色图片中。
3.导出拼接后的九份地图。
4.手绘简单图纸,实现流程图:
2.代码实现?
1.相关库安装:
安装枕头2。以下源代码保存在文件名“九宫格application.py”中:
from pil import image import numpy as NP import pil import OS def User _ input(): #返回画质参数,访问和保存图片的地址name=input(' Enter folder name:')#用户创建的文件夹space=int(input('\定义九宫格的空间,输入4的倍数:')#用户创建的文件夹aq=int(input('\油画效果输入0,朋友圈效果输入50, 00代表最高高清效果:')) first _ color=int(输入(' \输入一个0到255之间的数,0代表黑线,254代表白线,1-253代表灰线3360 '))如果first _ color=0,first _ color=2543360 #背景色值判断,不在此区域, 统一背景色定义为black end _ color=first _ color 1 else : first _ color=0 # for black end _ color=first _ color 1 file _ path=OS . getcwd()' \ \ \ ' name ' \ \ \ #访问图像路径save _ path=os.getcwd ()' \ \ \ ' '九宫格_' name '\\\\ #保存图片路径如果不是OS . path . exists(Save _ path): OS . makedirs(Save _ path)#创建文件夹保存names=os.listdir(file_path) #获取要访问的图片的文件名dir_list=[] #定义一个列表,names中n的访问和保存地址req_dir=file_path n #访问地址拼接save_dir=save_path n #保存地址拼接dir_list.append((n,req_dir, save _ dir)# save in list return(first _ color,end _ color,space,name,AQ,dir _ list) # return画质和访问及保存路径def img _ split _ 9 (first _ color,end _ color,space,n,AQ,req _ dir,save _ dir)3333 Img=image . open(req _ dir)。 convert ('RGB') #读取图像,除非(pil。未识别的图像Error) 3360返回# End this run n _ img=NP . array(img)#将图片转换为数字hv_wv=n_img.shape #获取图片的高度和宽度值hv=hv_wv[0] #高值wv=hv_wv[1] #宽值h_av=hv//3 #高平均值w _ av=wv//3 # white _ color=NP . random . randint(first _ color,end _ color,size=(h对于范围(3)中的I : # I表示范围(3)中j的高度(行):#j表示宽度(列)White _ color[h _ av * ii *(space//2)3360h _ av *(i1)I *(space W _ av * j *(space//2): W _ av *(J1)j *(space//2)]=n _ img[h _ av * I :h _ av *(i1),W _ av *img _ hwv=image . from array(white _ color)img _ hwv . save(save _ dir,' JPEG ',quality=AQ) # AQ代表图像压缩质量,0代表油画效果,50代表中等效果,朋友用。00表示接近原图,尺寸比原图大一点。打印({}拼接正常)。format(n))def main(): first _ color,end _ color,space,name,aq,dir _ list=user _ input () #获取dir _ list中n个用户输入的参数值,req _ dir,Save _ dir 3360 img _ split _ 9(first _ color,end _ color,space,n,AQ,req _ dir,save _ dir) #九宫格制作启动打印(' \拼接完毕,打开'九宫格_ {} '文件,看转换是否成功!\'.格式(名称))#告诉用户图片保存文件夹if _ _ name _=' _ main _ _' 3360print('使用说明:\ 1 .将九宫格application.py文件或九宫格application.py放在要转换的文件夹旁边,\ 2。然后双击九宫格application.py文件或者启动cmd python九宫格application.py,按照提示输入文件夹名称。\ 3.同时按ctrl c强制退出\') #指令while true 3360 try 3360 main()except(值错误)3360 print('请按照提示:\')3 .开始流程?
1.先把“九宫格application.py”放在要处理的图片文件夹旁边。本例中使用的文件名为“photock_images”,效果如下图所示:
文件夹和九宫格应用。py存储位置
2.在“九宫格application.py”旁边的空白处,按下键盘“shift”键,同时按下鼠标右键,会弹出一个对话框。找到如下图所示的“在此打开令窗口(W)”。
快捷方式打开cmd令窗口
3.启动“九宫格application.py”。在打开的终端中,输入python九宫格application.py,按键盘的回车键。按照提示操作后,按键盘上的Enter键。效果如下图所示:
启动九宫格应用。巴拉圭
4.程序处理后,在“照片CK _图像”旁边会出现一个名为“九宫格_ photock _图像”的文件夹。效果如下图所示:
4.成品展示?
1.程序执行前的图像效果:
原图
2.程序执行后的画面效果:
九宫格图
如何将弄成