帮我用python代码写一个压缩图片的函数方法
时间: 2023-03-07 12:22:57 浏览: 139
可以尝试使用Pillow库中的Image.thumbnail()函数来实现图片的压缩,具体的代码可以参考以下:from PIL import Imagedef compress_image(image_path, new_path):
im = Image.open(image_path)
im.thumbnail((200,200))
im.save(new_path)
相关问题
用python重新写一个压缩pdf大小的代码
在Python中,可以使用PyMuPDF库(也称为`fitz`)来操作PDF文件,包括压缩其大小。以下是一个简单的示例代码,展示了如何使用PyMuPDF来压缩PDF文件:
首先,确保你已经安装了PyMuPDF库。如果尚未安装,可以使用pip进行安装:
```bash
pip install pymupdf
```
然后,你可以使用以下代码来压缩PDF:
```python
import fitz # PyMuPDF库的模块
def compress_pdf(input_pdf_path, output_pdf_path, quality=20):
"""
Compress a PDF file by reducing the image quality.
:param input_pdf_path: 输入的PDF文件路径
:param output_pdf_path: 输出的压缩后的PDF文件路径
:param quality: 图片质量参数(1-100),越小图片质量越低,文件越小
"""
# 打开PDF文件
pdf = fitz.open(input_pdf_path)
pdf_new = fitz.open()
for page in pdf:
# 获取页面中的所有图片信息
pix = page.get_pixmap(matrix=fitz.Matrix(2, 2))
# 保存图片到新PDF,以指定质量压缩
pdf_new.insert_pixmap(pix, page.rect, quality=quality)
# 保存压缩后的PDF
pdf_new.save(output_pdf_path, garbage=4, deflate=True, clean=True)
# 关闭PDF文件
pdf_new.close()
pdf.close()
# 使用示例
compress_pdf('example.pdf', 'example_compressed.pdf')
```
这段代码定义了一个`compress_pdf`函数,它接受输入和输出的PDF文件路径,以及一个质量参数。通过降低图片的质量来减少PDF文件的大小。
在使用这个函数之前,确保你有一个名为`example.pdf`的PDF文件在你的工作目录中。执行函数后,将会创建一个名为`example_compressed.pdf`的压缩后的PDF文件。
写一个用python压缩图片的代码
以下是一个用Python压缩图片的示例代码,使用了Pillow库:
```python
from PIL import Image
def compress_image(file_path, max_size):
"""压缩图片至指定大小以内"""
image = Image.open(file_path)
# 获取原图片尺寸
width, height = image.size
# 获取原图片大小(字节)
orig_size = image.size[0] * image.size[1] * 3
# 计算压缩比例
ratio = max_size / float(orig_size)
# 如果原图片已经小于指定大小,直接返回
if ratio >= 1:
return image
# 计算压缩后的尺寸
new_width = int(width * ratio)
new_height = int(height * ratio)
new_size = (new_width, new_height)
# 压缩图片
compressed_image = image.resize(new_size, Image.ANTIALIAS)
return compressed_image
# 测试代码
if __name__ == '__main__':
file_path = 'test.jpg'
max_size = 1024 * 1024 # 1MB
compressed_image = compress_image(file_path, max_size)
compressed_image.save('compressed.jpg')
```
在这个示例代码中,我们定义了一个 `compress_image()` 函数,接收要压缩的图片文件路径和压缩后的最大大小(单位:字节),并返回压缩后的图片对象。
该函数首先打开指定的图片,并获取其原尺寸和大小。然后,它计算出压缩比例,如果原图片已经小于指定大小,直接返回原图片;否则,计算出压缩后的尺寸,使用 `resize()` 方法压缩图片,最后返回压缩后的图片对象。
在测试代码中,我们指定了要压缩的图片文件路径和压缩后的最大大小,并将压缩后的图片保存到文件 `compressed.jpg` 中。
阅读全文