1 Star 0 Fork 0

issacsonjj/wx-image-convert

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
convert.py 1.52 KB
一键复制 编辑 原始数据 按行查看 历史
xujiajun 提交于 2021-07-06 08:49 . change default output folder
import os
import shutil
import argparse
def convert_image(src: str, dst: str):
base = 0xFF
next = 0xD8
gifA = 0x47
gifB = 0x49
pngA = 0x89
pngB = 0x50
with open(src, 'rb') as src_f, open(dst, 'wb') as dst_f:
firstV, nextV = src_f.read(2)
jT = firstV ^ base
jB = nextV ^ next
gT = firstV ^ gifA
gB = nextV ^ gifB
pT = firstV ^ pngA
pB = nextV ^ pngB
v = firstV ^ base
if jT == jB:
v = jT
elif gT == gB:
v = gT
elif pT == pB:
v = pT
src_f.seek(0)
while True:
src_bytes = src_f.read(1024)
if src_bytes:
bytes_to_write = bytearray()
for b in src_bytes:
bytes_to_write.append(b ^ v)
dst_f.write(bytes_to_write)
else:
break
def convert_foler(src_folder: str, dst_folder: str):
if not os.path.exists(dst_folder):
os.mkdir(dst_folder, 644)
for path, dir_list, file_list in os.walk(src_folder):
for f in file_list:
if f.endswith('.dat'):
src_f = os.path.join(path, f)
dst_f = os.path.join(dst_folder, f.replace('.dat', '.jpg'))
convert_image(src_f, dst_f)
if __name__ == '__main__':
parser = argparse.ArgumentParser('')
parser.add_argument('-s', type=str)
parser.add_argument('-d', type=str, default='img')
args = parser.parse_args()
convert_foler(args.s, args.d)
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/issasonjj/wx-image-convert.git
git@gitee.com:issasonjj/wx-image-convert.git
issasonjj
wx-image-convert
wx-image-convert
master

搜索帮助

0d507c66 1850385 C8b1a773 1850385