电脑端微信用户图片DAT格式解码为图片(TK版)

本文介绍了一个使用Python和Tkinter创建的GUI应用,该应用能够读取微信DAT格式的图片文件,并通过异或操作解码为JPG、PNG或GIF格式。用户可以选择文件夹,预览并保存解码后的图片,同时提供删除功能。代码中涉及了文件操作、图像处理以及Tkinter控件的使用。

最近学习TK,想写个小项目。正好那原来发过的这个主题进行改进下。

先上图看个效果:

 设计思路如下:

1.选择微信图片文件夹路径

2.读取文件夹下文件,加载到Treeview里(可以学习到Treeview的使用)

3.选中行时,TK Label中显示图片

难点一:(TK,不支持jpg,所以需要用PIL来处理)

难点二:自然是微信图片转位图片的关键部分

4.加保存图片按钮,可在原路径下生成图片。删除图片按钮,可以删除不需要的dat文件,减少空间

源代码可生成的exe文件,链接如下:

微信图片DAT格式解码为图片

完整代码如下,未做整理,仅供学习:

#!/usr/bin/env python
# Author:Veray Zhou
import tkinter as tk
from tkinter.filedialog import *
from tkinter.ttk import *
import os
from PIL import Image, ImageTk
from io import BytesIO

window = tk.Tk()
window.title('电脑端微信用户图片DAT格式解码为图片')
window.geometry('450x750')

files = []
dir_path = ''
newfile_path = ''

def showFiles(dir_path):
    inFiles = os.listdir(dir_path)
    i = 1
    files.clear()
    for file in inFiles:
        # 获取文件类型
        filetype = os.path.splitext(file)[1]
        if filetype == '.dat':
            # 获取文件大小
            filesize = os.path.getsize(os.path.join(dir_path, file))
            #序号 文件名 文件大小
            files.append((i, file, '{:.2f}KB'.format(filesize/float(1024))))
            i += 1

    # print(files)
    return files



def select_path():
    global dir_path
    dir_path = askdirectory()
    e.delete(0, 'end')
    e.insert(0, dir_
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值