Spaces:
Running
on
Zero
Running
on
Zero
| import os | |
| import subprocess | |
| from ms import MSCORE | |
| import fitz | |
| from PIL import Image | |
| def abc2xml(filename_base): | |
| abc_filename = f"{filename_base}.abc" | |
| subprocess.run( | |
| ["python", "abc2xml.py", '-o', '.', abc_filename, ], | |
| check=True, | |
| capture_output=True, | |
| text=True | |
| ) | |
| def xml2(filename_base, target_fmt): | |
| xml_file = filename_base + '.xml' | |
| if not "." in target_fmt: | |
| target_fmt = "." + target_fmt | |
| target_file = filename_base + target_fmt | |
| command = [MSCORE, "-o", target_file, xml_file] | |
| result = subprocess.run(command) | |
| return target_file | |
| def pdf2img(filename_base, dpi=300): | |
| pdf_path = f"{filename_base}.pdf" | |
| doc = fitz.open(pdf_path) | |
| img_list = [] | |
| for page_num in range(len(doc)): | |
| page = doc.load_page(page_num) | |
| # 创建高分辨率矩阵 | |
| matrix = fitz.Matrix(dpi/72, dpi/72) | |
| pix = page.get_pixmap(matrix=matrix) | |
| # 转换为PIL Image | |
| img = Image.frombytes("RGB", [pix.width, pix.height], pix.samples) | |
| img_list.append(img) | |
| return img_list | |
| # if __name__ == '__main__': | |
| # pdf2img('20250304_200811_Baroque_Bach, Johann Sebastian_Choral') |