jpeg压缩python实现
时间: 2025-01-04 15:27:36 浏览: 15
### 使用Python实现JPEG图像压缩
对于希望利用Python来执行JPEG图像压缩的任务,可以采用`Pillow`库,这是一个非常流行的用于处理图像的Python库。尽管该库主要支持传统的JPEG标准而不是JPEG 2000,但对于大多数应用来说已经足够强大[^1]。
下面是一个简单的例子,展示如何使用`Pillow`来进行基本的JPEG图像压缩:
```python
from PIL import Image
def compress_image(input_path, output_path, quality=85):
with Image.open(input_path) as img:
img.save(output_path, 'JPEG', quality=quality)
compress_image('input.jpg', 'output_compressed.jpg')
```
如果确实需要使用JPEG 2000格式进行更高效的压缩,则可借助于`OpenJPEG`库及其Python封装`pyopenjpeg`或`glymur`。这里给出一段基于`glymur`库的例子代码,它允许创建和读取JP2文件(即JPEG 2000的一部分),从而实现了更高效率的数据压缩:
```python
import glymur
def save_as_jpeg_2000(input_path, output_path):
jp2 = glymur.Jp2k(input_path)
data = jp2[:]
jp2.close()
options = {'rate': (1,),} # 可调整压缩比率参数
compressed_jp2 = glymur.Jp2k(output_path, data=data, **options)
save_as_jpeg_2000('input.jp2', 'output_compressed.jp2')
```
上述两种方式都可以有效地减少图片大小,在不同场景下各有优势;前者简单易用适合一般需求,后者则更适合追求极致性能的应用场合。
阅读全文