Python 批量刷新Unity项目资源MD5 支持音效,视频,图片纹理,模型,meta,预制体,场景,脚本,json
2023-12-29 18:48:07
Python 批量刷新Unity项目资源MD5 支持音效,视频,图片纹理,模型,meta,预制体,场景,脚本,json
上代码!
代码目录和启动入口
def main( ):
import confuse_audio
confuse_audio.run(work_directory)
import confuse_picture
confuse_picture.run(work_directory)
import confuse_meta
confuse_meta.run(work_directory)
import confuse_anim
confuse_anim.run(work_directory)
import confuse_video
confuse_video.run(work_directory)
import confuse_text
confuse_text.run(work_directory)
import confuse_bytes
confuse_bytes.run(work_directory)
# 植入垃圾代码 稀释马甲代码
# domain
if __name__ == "__main__":
work_directory = input('input work directory:\n')
work_directory = work_directory.replace('\\','/')
import unittestutls
howlong_benrunning = unittestutls.get_func_time(func=main,log=False)
input(f'appliction complete: running time {
round(howlong_benrunning,2)} seconds')
基础混淆类
以二进制的方式读入后覆盖源文件
from os.path import isfile
class confuse_base( ):
def __init__(self, filepath:str) -> None:
if not isfile(filepath):
raise ValueError(f"not a file type: {
filepath}")
self.filepath = filepath
def confuse( self ):
with open( self.filepath,'rb+') as fp:
content = fp.read()
fp.seek(0)
fp.write(content)
图片
使用PIL修改像素矩阵 确保图片像素变动的同时 表现上无明显差异
from findutils import find_img_files
def run(pro_dir:str):
pro_dir = pro_dir.replace('\\','/')
img_urls = find_img_files( pro_dir )
num_imgs = len(img_urls)
if num_imgs == 0:
print(f'not found image in directory: {
pro_dir}')
return
from imgfileutils import auto_modify_img_pixels
import time
s = time.time()
executor = None
# 使用进程池
if num_imgs >= 1e+5:
import concurrent.futures
executor = concurrent.futures.ProcessPoolExecutor()
# 使用线程池
elif num_imgs >= 1e+3:
import concurrent.futures
executor = concurrent.futures.ThreadPoolExecutor()
if executor != None:
# 提交图像处理任务
futures = [executor.submit(auto_modify_img_pixels, arg) for arg in img_urls]
# 等待所有任务完成
concurrent.futures.wait(futures)
else:
#使用协程池
import gevent
from gevent import monkey; monkey.patch_all()
tasks = [gevent.spawn(auto_modify_img_pixels, arg) for arg in img_urls]
gevent.joinall(tasks)
e = time.time()
print(
文章来源:https://blog.csdn.net/qq_39162566/article/details/135296089
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!