【Python3脚本分享】三个常用图片处理脚本(镜像处理,gif分解,多图合并)
程序员文章站
2022-10-04 08:40:25
在做杂项的时候写的一些脚本,这里选了常用的三个图片处理的脚本。...
工具虽然方便,但处理图片较多时,总不可能一张张的使用工具吧,这个时候就需要使用到脚本了。这里分享了我在做图片隐写时常用到的三个脚本
- 图片镜像处理。
- gif分解。
- 多张图片合成。
0x01.镜像处理
- 使用PIL库。
- 思路:对源图片的每一个像素点做镜像变换。
# 图片镜像处理
from PIL import Image
im = Image.open("source.jpg") #源图片
pim = im.load()
an = Image.open("target.jpg") #输出图片
ans = an.load()
for i in range(im.size[0]):
for j in range(im.size[1]):
ans[i, j] = pim[im.size[0]-i-1, j]
an.show() #打开输出图片
0x02.gif分解
- 使用PIL库。
- 思路:对源gif的每一真,复制出来储存,统一格式命名。
# 将gif图分解成多张png
from PIL import Image
im = Image.open('glance.gif')
def iter_frames(im):
try:
i = 0
while 1:
im.seek(i)
imframe = im.copy()
if i == 0:
palette = imframe.getpalette()
else:
imframe.putpalette(palette)
yield imframe
i += 1
except EOFError:
pass
for i, frame in enumerate(iter_frames(im)):
frame.save('glance' + str(i) + '.png', **frame.info) #最终图片的保存格式
0x03.多图合并
- 使用PIL库。
- 前提:需要保证每一张图片前缀统一,比如:都是gg1.png,gg2.png之类的。
- 思路:创建一张新图片,将原来的每张图片按照指定位置填充进去。
#拼接图像.py
from PIL import Image
path = "D:\DeskTop\CTF\gifs\gg" # 源文件名,需要精确到目录名到多张图片的统一前缀
save_path = "D:\DeskTop\CTF\gifs" # 输出文件路径
target_image="final.png" # 输出图片的名字
im = Image.new('RGBA',(2*201,600)) #创建新照片,根据实际来
imagefile = [] #存储所有的图像的名称
width = 0
for i in range(0,101): #这里填图像的张数
imagefile.append(Image.open(path+str(i)+'.png')) #遍历,将图像名称存入imagfile
for image in imagefile:
im.paste(image,(width,0,2+width,600)) #将图片张贴到另一张图片上
width = width +2
im.save(save_path+target_image)
im.show()
本文地址:https://blog.csdn.net/ATFWUS/article/details/107441872