将所有帧分离出来,
from PIL import Image
import os
gifFileName = 'running_pixel.gif'
im = Image.open(gifFileName)
pngDir = gifFileName[:-4]
os.mkdir(pngDir)
try:
while True:
current = im.tell()
im.save(pngDir+'/'+str(current)+'.png')
im.seek(current+1)
except EOFError:
pass
发现每隔10张图片都有异常,stegsolve看下
可以看到小人头上有个奇怪的点,并且在第20张图片也看到了类似的点,不过位置不同
图片放大后,发现那个点的颜色与其背景色不同,背景色为(247,247,247),点的颜色是(233,233,233)
每隔10张将其坐标提取出来并绘制到新的图片上,但是提取过程中发现getpixel得到的不是元组,而是一个数字,经过搜索,发现提取出来的图片是P模式,需要改成RGB模式。
但是得到的却是很不连贯的散点。看了wp才发现原来其他图片也有类似的点,全部弄出来之后得到一张图片,里面有很多个字母
写个脚本,把字母出现的顺序弄出来,就是flag
from PIL import Image
count=1
old_x=0
old_y=0
im = Image.new('RGB', (400, 400))
for i in range(382):
_im=Image.open(f'./running_pixel/{i}.png')
_im = _im.convert('RGB')
for x in range(400):
for y in range(400):
if _im.getpixel((x, y)) == (233, 233, 233):
if abs(old_x-x) > 5 and abs(old_y-y) > 5:
im.save(f'./save/{count}.png')
else:
im.putpixel((x, y), (255, 255, 255))
count+=1
old_x = x
old_y = y