工作中用到kfb格式的转化 网上的方法都只能单张图片转化且文档老旧,所以想找一个可以批量处理的转化方法同时更加便捷。
首先下载这个文件https://github.com/wilmerwang/SLFCD/releases,在里面选中
,
将文件存放在任意位置
适用系统:32位/64位windows系统
1)安装VS2010 vcredist_x86
2)系统:window server 2003以上版本
X32,X64皆可
3)系统配置:内存1G以上
关于1)中的安装方式,点进文件夹双击即可
同时,编写如下代码,这个脚本会遍历源文件夹中的所有KFB文件,并将它们转换为SVS格式,然后保存到目标文件夹中。
import os
import sys
import subprocess
from time import time
def main():
# 检查参数数量是否正确
if len(sys.argv) != 4:
raise ValueError('Example: convert_kfb2svs.py [src_folder_name] [des_folder_name] [level]')
# 指定转换工具的路径
exe_path = '.\\kfb2tif2svs\\x86\\KFbioConverter.exe'
if not os.path.exists(exe_path):
raise FileNotFoundError('Could not find conversion tool.')
# 解析命令行参数
_, src_folder_name, des_folder_name, level = sys.argv
# 检查级别参数是否在正确范围内
if not 2 <= int(level) <= 9:
raise ValueError('Level must be between 2 and 9.')
# 获取当前工作目录
pwd = os.getcwd()
# 构建源文件夹和目标文件夹的完整路径
full_path = os.path.join(pwd, src_folder_name)
dest_path = os.path.join(pwd, des_folder_name)
# 检查源文件夹是否存在
if not os.path.exists(full_path):
raise FileNotFoundError(f'Could not find directory: {src_folder_name}')
# 如果目标文件夹不存在,则创建
if not os.path.exists(dest_path):
os.makedirs(dest_path)
# 获取源文件夹中所有的KFB文件列表
kfb_list = [f for f in os.listdir(full_path) if f.endswith('.kfb')]
print(f'Found {len(kfb_list)} slides, transferring to SVS format ...')
for elem in kfb_list:
st = time()
kfb_elem_path = os.path.join(full_path, elem)
svs_dest_path = os.path.join(dest_path, elem.replace('.kfb', '.svs'))
# 构建转换命令
command = [exe_path, kfb_elem_path, svs_dest_path, level]
print(f'Processing {elem} ...')
# 执行转换命令
subprocess.run(command, check=True)
print(f'Finished {elem}, time: {time() - st}s ...')
if __name__ == "__main__":
main()
将下载的文件和脚本文件按如下方式存放。
在命令行中运行时,需要提供三个参数,例如:
python convert_kfb2svs.py source_folder_name destination_folder_name 3
其中source_folder_name
是包含KFB文件的源文件夹的名称,destination_folder_name
是SVS文件将要保存的目标文件夹的名称,3
是转换级别。
参考资料:https://github.com/xjw00654/convert_kfb2svs/blob/master/convert_kfb2svs.py