python压缩图片?
时间: 2023-12-26 19:28:41 浏览: 35
以下是使用Python进行图片压缩的方法:
1. 使用Pillow库进行图片压缩:
```python
from PIL import Image
def compress_image(image_path, output_path, quality):
img = Image.open(image_path)
img.save(output_path, optimize=True, quality=quality)
# 示例用法
compress_image('input.jpg', 'output.jpg', 80)
```
2. 使用OpenCV库进行图片压缩:
```python
import cv2
def compress_image(image_path, output_path, quality):
img = cv2.imread(image_path)
cv2.imwrite(output_path, img, [cv2.IMWRITE_JPEG_QUALITY, quality])
# 示例用法
compress_image('input.jpg', 'output.jpg', 80)
```
这两种方法都可以用来压缩图片,但是需要注意的是,压缩图片会导致一定的失真。你可以根据需要调整quality参数来控制压缩质量,值越小压缩质量越低。
相关问题
python 压缩图片尺寸
在Python中,我们可以使用Pillow库来压缩图片尺寸。Pillow是Python Imaging Library的一个分支,提供了丰富的图像处理功能。以下是使用Pillow压缩图片尺寸的基本步骤:
1. 首先,确保已经安装了Pillow库,如果没有,可以通过pip进行安装:
```
pip install Pillow
```
2. 导入所需的模块:
```python
from PIL import Image
```
3. 打开图片文件:
```python
img = Image.open('input_image.jpg')
```
4. 设置压缩质量或调整尺寸(例如,宽度和高度):
- 通过设置`thumbnail`方法来调整大小,同时保持图片比例:
```python
new_size = (width, height)
compressed_img = img.thumbnail(new_size)
```
- 或者设置质量百分比来压缩,如75%:
```python
quality = 75
compressed_img = img.resize((int(img.size * quality / 100), int(img.size * quality / 100)), Image.ANTIALIAS)
```
- 如果只想减少文件大小而不改变图片尺寸,可以使用`save`方法并指定一个优化的格式,如JPEG:
```python
compressed_img.save('output_image.jpg', optimize=True, quality=90)
```
这里,`quality`参数范围通常在0到100之间,值越低,压缩程度越高,但可能影响图片质量。
python压缩图片
你可以使用Python的Pillow库来压缩图片。以下是一个简单的示例代码:
```python
from PIL import Image
def compress_image(input_path, output_path, max_size):
image = Image.open(input_path)
# 获取原始图片尺寸
width, height = image.size
# 计算压缩比例
ratio = max(width, height) / max_size
# 如果图片已经小于设定的最大尺寸,则无需压缩
if ratio <= 1:
image.save(output_path)
return
# 计算压缩后的尺寸
new_width = int(width / ratio)
new_height = int(height / ratio)
# 生成压缩后的图片
resized_image = image.resize((new_width, new_height), Image.ANTIALIAS)
# 保存压缩后的图片
resized_image.save(output_path)
# 示例使用
input_path = 'input.jpg' # 输入图片路径
output_path = 'output.jpg' # 输出图片路径
max_size = 1024 # 设定的最大尺寸
compress_image(input_path, output_path, max_size)
```
在上述代码中,我们定义了一个`compress_image`函数,它接收输入图片的路径、输出图片的路径以及设定的最大尺寸作为参数。该函数会判断原始图片是否需要进行压缩,若需要,则根据设定的最大尺寸计算压缩比例,并生成压缩后的图片。最后,将压缩后的图片保存到输出路径。
你可以根据实际需求调整`max_size`的值来控制压缩后的图片尺寸。