写一个在jupyterLab上将一张灰度图像进行WebP图像压缩的代码,并计算压缩率
时间: 2024-02-18 14:03:28 浏览: 145
好的,以下是一个在JupyterLab上将灰度图像进行WebP图像压缩并计算压缩率的代码:
```python
from PIL import Image
import subprocess
import os
# 读入灰度图像
img_path = 'gray_image.jpg'
img = Image.open(img_path).convert('L')
# 将灰度图像转换为RGB图像
rgb_img = Image.new("RGB", img.size)
rgb_img.paste(img)
# 将RGB图像保存为PNG格式
temp_path = 'temp.png'
rgb_img.save(temp_path, 'PNG')
# 使用WebP编码器压缩图像
quality = 50
output_path = 'compressed_image.webp'
cmd = f'cwebp -q {quality} {temp_path} -o {output_path}'
os.system(cmd)
# 计算压缩率
compressed_size = os.path.getsize(output_path)
original_size = os.path.getsize(img_path)
compression_ratio = float(compressed_size) / float(original_size)
print(f"压缩率为: {compression_ratio:.2f}")
# 删除临时文件
os.remove(temp_path)
```
在这里,我们首先将灰度图像转换为RGB格式,然后将其保存为PNG格式。接下来,我们使用WebP编码器将PNG格式的图像压缩为WebP格式。最后,我们计算压缩率并打印输出。
请注意,为了运行此代码,你需要先在系统上安装WebP编码器。你可以使用以下命令在Ubuntu上安装:
```
sudo apt-get install webp
```
你还需要将输入图像保存为"gray_image.jpg"文件。
希望这个代码对你有所帮助!
阅读全文