拼接GIF图片

查看 49|回复 9
作者:ROLing0   
做ctf题的时候遇到一张GIF图片,如下图


QQ拼音截图20241114205148.png (11.98 KB, 下载次数: 0)
下载附件
2024-11-14 20:52 上传


your_image.7z
(657.76 KB, 下载次数: 28)
2024-11-14 20:40 上传
点击文件名下载附件
下载积分: 吾爱币 -1 CB

极其细长,并且有700多帧。把它每一帧分离并拼在一起可以获得一张图片


concatenated_image.png (455.47 KB, 下载次数: 0)
下载附件
2024-11-14 20:43 上传

下面是代码
[Python] 纯文本查看 复制代码from PIL import Image
# 加载GIF图片
gif_path = r"C:\Users\lenovo\Desktop\your_image.gif"  # 替换为你的GIF文件路径
gif = Image.open(gif_path)
# 获取GIF的每一帧
frames = []
for frame in range(gif.n_frames):
    gif.seek(frame)
    frame_image = gif.copy()
    frames.append(frame_image)
# 拼接所有的帧
total_width = sum(frame.width for frame in frames)
max_height = max(frame.height for frame in frames)
# 创建一个新的空白图片,用于拼接
concatenated_image = Image.new("RGB", (total_width, max_height))
# 将每一帧按顺序粘贴到新的图片上
current_width = 0
for frame in frames:
    concatenated_image.paste(frame, (current_width, 0))
    current_width += frame.width
# 保存拼接后的图像
output_path = r"C:\Users\lenovo\Desktop\concatenated_image.png"  # 输出拼接后的图片路径
concatenated_image.save(output_path)
print(f"拼接后的图片已保存到: {output_path}")
原GIF来源于bugku split_all

图片, 下载次数

magicheno   

太复杂,看不懂,
goldxound   

这个能用在加密信息吗?赛博拼图()
notook   

新手看不懂
luyingluying   

新人一枚,
龍謹   

可以呢,这么几行代码就实现了。
天地和顺   

顶礼膜拜,高手致敬
Benevolence   

好的代码,往往很简单。
wen1233218   

代码写得不错
cici300   

没懂,O(∩_∩)O哈哈~
您需要登录后才可以回帖 登录 | 立即注册

返回顶部