图像文件压缩。使用PIL库对图片进行等比例压缩,无论压缩前文件大小如何,压缩后文件小于10KB。
时间: 2023-08-11 10:25:40 浏览: 362
可以使用Pillow库(PIL的一个分支)来对图片进行等比例压缩,并使用二分查找算法来找到最佳的压缩质量,使得压缩后的文件小于10KB。
以下是示例代码:
```python
from PIL import Image
import io
def compress_image(input_file, output_file):
with open(input_file, 'rb') as f:
with Image.open(io.BytesIO(f.read())) as img:
quality = 80 # 初始压缩质量
while True:
with io.BytesIO() as buffer:
img.save(buffer, format='JPEG', quality=quality)
data = buffer.getvalue()
if len(data) < 10*1024: # 文件大小小于10KB
with open(output_file, 'wb') as f_out:
f_out.write(data)
break
else:
# 二分查找最佳压缩质量
quality = quality // 2
if __name__ == '__main__':
compress_image('input.jpg', 'output.jpg')
```
将需要压缩的图片文件命名为`input.jpg`,运行以上代码,生成的压缩后文件命名为`output.jpg`,文件大小小于10KB。
阅读全文