作品展示
背景需求:
学习midjounery-niji表情包制作,先用关键词生成了一张3*3的熊猫多种表情图矩阵式样
选第3张,放大,另存为“熊猫9张图”
需要:
把这张PNG图片切成9张同样大的小图,便于生成GIF动图。
图片位置:
代码展示:
# 参考网址:https://blog.csdn.net/weixin_42182534/article/details/125773141?ops_request_misc=&request_id=&biz_id=102&utm_term=python%E6%88%AA%E5%8F%96%E5%9B%BE%E7%89%87%E7%9A%84%E4%B8%80%E9%83%A8%E5%88%86&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-125773141.nonecase&spm=1018.2226.3001.4187
'''
功能:把midjounery 生成的3*3表情图(熊猫)等分切割成小图ng)
作者:阿夏
时间:2023年6月26日 19:51
'''
from PIL import Image
import os
import os.path
long=int(input('图片长度像素(2048,2912,1024)\n'))
wide=int(input('图片宽度像素(2048,1632,1024)\n'))
qf=int(input('切分矩阵数量3(2*2,3*3,4*4)\n'))
# 目前图片都是2*2,3*3排列
# 1:1图比例是2048
# 16:9图片比例 2912:1632
wj=input('文件夹名称\n')
# 定义文件所在文件夹
image_dir = r'C:\Users\jg2yXRZ\OneDrive\桌面\{}'.format(wj)
for parent, dir_name, file_names in os.walk(image_dir): # 遍历每一张图片
for filename in file_names:
print(filename)
pic_name = os.path.join(parent, filename)
image = Image.open(pic_name)
_width, _height = image.size
print(_width, _height)
# 四张图片的坐标
t1=[0,0,float(long/qf),float(wide/qf)]
t2=[float(long/qf),0,float(long/qf*2),float(wide/qf)]
t3=[float(long/qf*2),0,long,float(wide/qf)]
# t4=[0,0,float(long/qf),float(wide/qf)]
t4=[0,float(wide/qf),float(long/qf),float(wide/qf*2)]
t5=[float(long/qf),float(wide/qf),float(long/qf*2),float(wide/qf*2)]
t6=[float(long/qf*2),float(wide/qf),long,float(wide/qf*2)]
t7=[0,float(wide/qf*2),float(long/qf),wide]
t8=[float(long/qf),float(wide/qf*2),float(long/qf*2),wide]
t9=[float(long/qf*2),float(wide/qf*2),long,wide]
# t3=[0,float(wide/qf),float(long/qf),wide]
# t4=[float(long/qf),float(wide/qf),long,wide]
pic=t1+t2+t3+t4+t5+t6+t7+t8+t9
print(pic)
print(len(pic))
# [0, 0, 1456.0, 816.0, 1456.0, 0, 2912, 816.0, 0, 816.0, 1456.0, 1632, 1456.0, 816.0, 2912, 1632]
qfall=4
# 每张图有4个坐标
n=0
for p in range(int(len(pic)/4)):
pp=pic[p*4:p*4+4]
print(pp)
# 定义裁剪范围(left, upper, right, lower)1024
# # box = image.crop((0,0,123,123))
box = image.crop((pp[0],pp[1],pp[2],pp[3]))
name = filename[:-4]+'_'+str(n) +'.png'
print(name)
# # # ,pp[3],pp[4],pp[5],pp[6],pp[7],pp[8],pp[9]))
# # name = filename[:-4]+'_'+str(p) +'.png'
box.save(r'C:\Users\jg2yXRZ\OneDrive\桌面\{}\{}'.format(wj,name))
n+=1
print('Done!')
终端运行:
1、先查看图片的长宽尺寸(1024*1024)
2、输入信息
生成GIF的思路
1、桌面新建一个“PPTX”
2、使用PPTX相册导入照片
2、设计-幻灯片大小-自定义幻灯片大小
3、删除第一页
4、添加统一文字
选中这个文本框的边缘,右击剪切
此时熊猫下面没有文字了
进入幻灯片模板
5、切换-换片方式(几秒换一张图片)
6、图片修图
7、 保存为MP4(重要步骤)
作品生成(位置在桌面)
8、MP4转GIF(微信用)
打开“格式工厂”
视频-GIF
最终效果展示:(GIF)