前言
在日常的业务开发中,我们经常会有需要压缩图片,节省服务器存储空间的需求。本章节来介绍一下使用 imagemagick 来压缩图片。
官网
http://www.imagemagick.org/script/index.php
在使用这个工具之前,首先需要安装好imagemagick
Centos7的安装方式
yum install ImageMagick -y
windows安装包下载
http://www.imagemagick.org/script/download.php
官方提供的第三方库
http://docs.wand-py.org/en/0.5.6/
安装wand
$ pip3 install Wand
运行wand调用imageMagick的示例
from wand.image import Image
from wand.display import display
def main():
with Image(filename='1563928708294.png') as img:
print(img.size)
for r in 1, 2, 3:
with img.clone() as i:
i.resize(int(i.width * r * 0.25), int(i.height * r * 0.25))
i.rotate(90 * r)
i.save(filename='mona-lisa-{0}.png'.format(r))
display(i)
if __name__ == '__main__':
main()
执行完毕后,会自动弹出三个图片的图片,并且保存了三个图片处理后的输出文件。
可以看到自动弹出的三张图片旋转了不同的角度。
我目前的需求是需要将图片进行压缩,现在来看看压缩的代码。
压缩图片示例
from wand.image import Image
from wand.display import display
def compression(filename):
try:
with Image(filename=filename) as img:
# print(img.size)
with img.clone() as i:
i.resize(int(i.width * 0.7), int(i.height * 0.7)) # 压缩至70%的尺寸大小
i.save(filename='%s'%filename)
except Exception as e:
print(e)
def main():
compression(filename='1563928708294.png')