为什么使用fitz读取pdf转为图片模糊

出现这样的原因有可能是因为,在进行页面读取的时候未指定读取的dpi是多少,使得默认读取去96dpi
所以在进行读取时使用

    page = doc.load_page(page_number)

    # 获取页面的图像对象
    pix = page.get_pixmap(dpi=200)

遇到苦难找文档哦
牢记 : \color{red}{牢记:} 牢记:help()和查看官方文档呀

import fitz
from PIL import Image

# 打开PDF文件
doc = fitz.open(r"C:\Users\O-c-O\Desktop\11.pdf")

# 遍历每个页面
for page_number in range(doc.page_count):
    # 加载页面
    page = doc.load_page(page_number)

    # 获取页面的图像对象
    matrix = fitz.Matrix(1.0, 1.0)  # 1.0 表示原始尺寸
    # pix = page.get_pixmap(matrix=matrix,dpi=200)
    pix = page.get_pixmap(dpi=200,alpha=False)

    print(pix.width,pix.height)
    # 将图像转换为Pillow的Image对象
    img = Image.frombytes("RGB", [pix.width, pix.height], pix.samples)

    # 保存图像为PNG格式,不进行压缩
    dpi = 120  # 设置所需的 DPI 值
    img.save(f'output_{page_number}.png', dpi=(dpi, dpi),)
    # img.save(f'output_{page_number}.png',)

# 关闭文档对象
doc.close()

相关的其他参数还有:

  • matrix:指定应用于页面的转换矩阵(fitz.Matrix 对象)。默认为
    None,表示不应用任何转换。通过调整缩放、旋转和裁剪等操作,可以对页面进行自定义的转换。
  • clip:指定是否裁剪图像以适应页面边界框。默认为 False,表示不进行裁剪。
  • alpha:指定是否提取图像的透明通道。默认为 False,表示不提取透明通道。
  • dpi:指定图像的采样密度(每英寸像素数量)。默认为 None,表示使用默认的采样密度。
  • band_width:指定每个带宽条的像素宽度。默认为 0,表示禁用带宽条。
  • band_height:指定每个带宽条的像素高度。默认为 0,表示禁用带宽条。
  • band_sep:指定带宽条之间的像素间隔。默认为 0,表示禁用带宽条。
  • band_rows:指定在图像传输期间要生成的带宽条的行数。默认为 0,表示禁用带宽条。
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值