修改下面的代码,提高图片的质量:for filename in os.listdir(path1): # 判断是否为PDF文件 if filename.endswith(".pdf"): # 使用fitz库打开PDF文件,并获取页面数量 pdf_path = os.path.join(path1, filename) doc = fitz.open(pdf_path) page_count = doc.page_count # 逐页将PDF保存为高清图片 for i in range(page_count): page = doc[i] zoom = 4 # 放大倍数 rotate = int(0) # 不旋转 trans = fitz.Matrix(zoom,zoom).preRotate(rotate) pix = page.get_pixmap(matrix=trans, alpha=False) # cropped_pix = pix.crop((0, 0, 120, 120)) img_path = os.path.join(path2, f"{os.path.splitext(filename)[0]}_{i+1}.jpg") img = Image.frombytes("RGB", [pix.width, pix.height], pix.samples) region = img.crop((0,0,1152,864)) region.save(img_path, dpi=(300, 300)) # 设置输出图片的分辨率
时间: 2024-02-14 21:29:42 浏览: 115
Python使用os.listdir和os.walk获取文件路径
你可以通过调整以下代码来提高图片的质量:
```python
for filename in os.listdir(path1):
# 判断是否为PDF文件
if filename.endswith(".pdf"):
# 使用fitz库打开PDF文件,并获取页面数量
pdf_path = os.path.join(path1, filename)
doc = fitz.open(pdf_path)
page_count = doc.page_count
# 逐页将PDF保存为高清图片
for i in range(page_count):
page = doc[i]
zoom = 4 # 放大倍数
rotate = int(0) # 不旋转
trans = fitz.Matrix(zoom, zoom).preRotate(rotate)
pix = page.get_pixmap(matrix=trans, alpha=False)
# cropped_pix = pix.crop((0, 0, 120, 120))
img_path = os.path.join(path2, f"{os.path.splitext(filename)[0]}_{i+1}.jpg")
img = Image.frombytes("RGB", [pix.width, pix.height], pix.samples)
# 提高图片质量的方法:使用Image类的resize方法来调整图片尺寸
new_width = pix.width * 2 # 增加宽度
new_height = pix.height * 2 # 增加高度
img = img.resize((new_width, new_height), Image.ANTIALIAS)
img.save(img_path, dpi=(300, 300)) # 设置输出图片的分辨率
```
在上述代码中,我添加了一行代码来使用Image类的resize方法来调整图像的尺寸。你可以根据需要调整图像的宽度和高度,以提高图像的质量。这里使用的是Image.ANTIALIAS参数,它会对图像进行平滑处理,以减少锯齿和失真。最后,将修改后的图像保存到指定路径,并设置输出图片的分辨率为300 DPI。
阅读全文