通过imwrite JPEG quality修改保存的图片资料,进行图像压缩,python代码
时间: 2024-10-28 18:16:04 浏览: 22
在Python中,你可以使用`PIL` (Pillow) 库来进行图像操作,包括JPEG质量的调整。以下是一个简单的例子,展示了如何使用`imwrite`函数并设置JPEG压缩质量:
```python
from PIL import Image
def compress_image(input_path, output_path, quality):
# 打开图像文件
with Image.open(input_path) as im:
# 设置JPEG质量,范围通常在0到100之间,越低质量越高,文件越小
compressed_im = im.save(output_path, 'JPEG', optimize=True, quality=quality)
# 使用示例
compress_image('input.jpg', 'output_compressed.jpg', 80)
```
在这个例子中,`quality`参数指定了JPEG图像的质量等级,80是一个常见的较低质量值,适合于需要减小文件大小的情况。`optimize=True`选项可以启用一些额外的优化来提高压缩效果。
相关问题
opencv 图像压缩python代码
我可以回答这个问题。以下是一个使用 OpenCV 库进行图像压缩的 Python 代码示例:
```
import cv2
# 读取图像
img = cv2.imread('image.jpg')
# 设置压缩参数
params = [cv2.IMWRITE_JPEG_QUALITY, 50]
# 压缩图像
compressed_img = cv2.imencode('.jpg', img, params)[1]
# 将压缩后的图像保存到文件
with open('compressed_image.jpg', 'wb') as f:
f.write(compressed_img)
```
这个代码示例将图像压缩为 JPEG 格式,并将压缩质量设置为 50。你可以根据需要调整压缩参数。
图像压缩 python
图像压缩是指将图像文件的大小减小,以便在存储或传输过程中占用更少的空间或带宽。在Python中,有几种方法可以实现图像压缩。
一种常用的方法是使用图像处理库PIL(Python Imaging Library)或其分支库Pillow。以下是使用Pillow进行图像压缩的示例代码:
```python
from PIL import Image
def compress_image(input_image_path, output_image_path, max_size):
image = Image.open(input_image_path)
image.thumbnail((max_size, max_size))
image.save(output_image_path, "JPEG")
input_image_path = "input.jpg"
output_image_path = "output.jpg"
max_size = 1024 # 设置最大尺寸
compress_image(input_image_path, output_image_path, max_size)
```
在上述代码中,`compress_image`函数接受输入图像路径、输出图像路径和最大尺寸作为参数。函数内部使用`Image.open`打开输入图像文件,然后使用`thumbnail`方法将图像缩放到指定的最大尺寸。最后,使用`save`方法将压缩后的图像保存到输出路径。
另一种常用的图像压缩方法是使用开源库OpenCV。以下是使用OpenCV进行图像压缩的示例代码:
```python
import cv2
def compress_image(input_image_path, output_image_path, quality):
image = cv2.imread(input_image_path)
cv2.imwrite(output_image_path, image, [cv2.IMWRITE_JPEG_QUALITY, quality])
input_image_path = "input.jpg"
output_image_path = "output.jpg"
quality = 80 # 设置压缩质量(0-100)
compress_image(input_image_path, output_image_path, quality)
```
在上述代码中,`compress_image`函数接受输入图像路径、输出图像路径和压缩质量作为参数。函数内部使用`cv2.imread`读取输入图像文件,然后使用`cv2.imwrite`将图像以指定的压缩质量保存到输出路径。
以上是两种常用的图像压缩方法,你可以根据实际需求选择适合的方法进行图像压缩。
阅读全文