我用krkrextract解包游戏想提取cg,然后得到一堆pimg文件,虽然可以用GARbro提取,但百多个只能一个个转换,更何况每一个pimg文件里的子文件命名还一样,还得反复重命名区分,实在是太麻烦了。有大佬能提供更快捷的办法吗
188
我用krkrextract解包游戏想提取cg,然后得到一堆pimg文件,虽然可以用GARbro提取,但百多个只能一个个转换,更何况每一个pimg文件里的子文件命名还一样,还得反复重命名区分,实在是太麻烦了。有大佬能提供更快捷的办法吗
4 条回复
https://github.com/leohu1/PIMG-Decoder
现场搜的,我也没用过,你可以试试
我一般只解包 CG 做壁纸,所以我直接拿一张完整的底图就可以,没有用合成
你把这个项目 clone 下来,然后把 main.py 中的
pimg_export_layers
函数改成下面这样就可以解包所有 pimg 图片了pythondef pimg_export_layers(pimg_path, image_format=".png"): img_path, json_path, resx_path = pimg_decode(pimg_path) output_prefix = "./output/{}" + image_format with open(json_path) as f: j = json.load(f) with open(resx_path) as f: jr = json.load(f) def layer_id2path(lid: str): return pimg_path.parent.joinpath(jr["Resources"][str(lid)]) width = j["width"] height = j["height"] for i, layer in enumerate(j["layers"]): layer_id = layer["layer_id"] name = layer.get("name", f"layer_{i}") left, top = layer["left"], layer["top"] pm = Image.open(layer_id2path(layer_id)) im = Image.new("RGBA", (width, height), (0, 0, 0, 0)) im.paste(pm, (left, top), pm if pm.mode == "RGBA" else None) safe_name = name.replace("/", "_").replace("\\", "_") im.save(output_prefix.format(safe_name)) pm.close() shutil.rmtree(img_path.with_suffix("")) json_path.unlink() resx_path.unlink()
https://github.com/UlyssesWu/FreeMote/releases
krkr大多數是psb檔頭,你garbro解原檔出來,把所有pimg一次過拖去PsbDecompile.exe
json會有各種資料,如x,y,但很難看,要自己研究
(。>︿<。) 已经一滴回复都不剩了哦~