pdf2img python編

คือว่า โปรแกรมpdf24เมื่อกี้มันพัง… พอinput pdfหลายๆไฟล์พร้อมกัน มันบอกว่าหา imageที่extractแล้วเก็บไว้ใน tmp folder ไม่เจอ .. ซึ่งปิดโปรแกรมเปิดใหม่ก็ไม่หาย เหมือนจะต้องรีเซ็ตคอม…
ก็เลย ถาม chatpgtให้มันเขียนโค๊ดให้หน่อย + แก้เองเยอะอยู่
ได้ความว่า

import fitz  # pip install PyMuPDF
import os
import shutil
from pathlib import Path

def extract_images_from_pdf(pdf_path, save_folder):
    doc = fitz.open(pdf_path)
    print(pdf_path)
    save_prefix = "_".join(element[:10] for element in pdf_path.split("\\"))
    #save_prefix = pdf_path.replace("\\", "-")[0:20]
    print(save_prefix)

    img_index =0
    for page_number in range(doc.page_count):
        page = doc[page_number]
        images = page.get_images(full=True)
        #print("found images "+len(images))


        for img_info in images:
            img_index += 1
            image_index = img_info[0]
            #print(img_index,image_index)
            base_image = doc.extract_image(image_index)

            image_bytes = base_image["image"]
            image_filename = f"{save_folder}/{save_prefix}_{img_index}.jpg"

            with open(image_filename, "wb") as image_file:
                image_file.write(image_bytes)
    print("extracted images = "+str(img_index)+"\n")
    doc.close()
    
    
def extract_images_from_pdfs(pdf_folder, save_folder):
    files = [f for f in os.listdir(pdf_folder) if os.path.isfile(os.path.join(pdf_folder, f))]
    for file in files:
        #print(file)
        if file.lower().endswith(('.pdf')):
            filepath = os.path.join(pdf_folder, file)
            extract_images_from_pdf(filepath, save_folder)
    print("Done!")
            
extract_images_from_pdfs('Session 5 - Interfaces for the Body and Beyond','extracted_images')

คือใส่ชื่อ folder เป็น input แล้วอ่าน pdf ในโฟล์เดอร์นั้น extract image
ซึงอันนี้ ถ้ารูปต้นฉบับเป็น transparent มา มันจะใส่ background สีดำให้ ต่างกับตัวโปรแกรมpdf24 ที่เซฟเป็นสีขาวให้ ดูคลีนตากว่า

ละก็contrastสีเพี้ยนน ไม่รู้ว่ารูปต้นฉบับเป็นไฟล์อะไร

folder ismar นี่ล่มมาก ทั้งสีเพี้ยน ภาพมาเป็นเศษๆ ไม่รู้เป็นไร

กับอีกอย่างที่ยังทำไม่ได้คือ ถ้ารูปต้นฉบับ embed เป็น pdf มา (มักจะเป็นพวกกราฟที่อยากได้ …) ทั้งโปรแกรมpdf24 ทั้ง python lib ตัวนี้ยัง extract ออกมาให้ไม่ได้