今天我们开始实战一下,编写一个比较有实用价值的小程序。说起图片格式,大家都不陌生,我们常用的图片格式有jpg/jpeg、png、gif、bmp等等。不知道从什么时候开始,网络上流行了另一种图片格式——webp。这种格式的文件是一款既支持有损压缩也支持无损压缩的图片格式文件,该格式是由谷歌公司开发的旨在加快图片加载速度的图片格式。在质量相同的情况下,webp格式图像的体积要比jpeg格式图像小40%,能节省大量的服务器宽带资源和数据空间。现在从度娘上搜索到的图片大多都是webp格式的。
这种格式的图片在win7以下的操作系统上默认是没有关联到打开程序的,直接点击是打不开的,需要在打开方式里,找到照片查看器或画图工具才能打开。有人说直接把文件扩展名改成jpg或png不就行了。这样改虽然能直接打开查看了,但实际上并没有修改图片本身的文件格式。如果将它们用在某些带有格式检测的软件上,是无法使用的。而对于我们程序员来说,这种敷衍了事的做法更是不能容忍的。好了,我们开始编写程序。
打开PyCharm,点击“File->New Project...”新建项目
进入Create Project对话框
我们修改项目名为“ImageConvert”,其他选项默认,点击“Create”新建项目。
此时,ImageConvert项目已经建好。
顺便说一句,我发现右下角弹出这么一个提示
这是提示你可以把PyCharm进行本地化,对我们中文操作系统来说,也就是汉化了。点击“Switch and restart”,你的PyCharm就变成中文的了。我习惯了英文版的,这里就不切换成中文版了。
我们现在修改main.py,把原来的内容删除,把下面一段代码复制进去
import os
from PIL import Image, ImageOps
if __name__ == '__main__':
srcImagePath = 'D:/test.webp'
image = Image.open(srcImagePath)
image = ImageOps.exif_transpose(image)
path, ext = os.path.splitext(srcImagePath)
dstImagePath = path + '.png'
image.save(dstImagePath)
print('%s ---> %s' % (srcImagePath, dstImagePath))
此时,第2行代码会有红色错误提示,这是因为我们的虚拟环境中没有安装这些包。把鼠标停留在PIL下面红线上,会有如下提示
点击“Install package PIL”,右下角提示安装失败
此时,你是不是头大了一圈儿?好事多磨,既然我们已经选择了学习编程,就需要面对各种问题,从容面对,解决它就好了!我们点击“Details...”看看具体是什么问题
它说我现在用的pip版本是21.3.1,需要升级到22.2,后面给出了升级命令:
Python.exe -m pip install --upgrade pip
好了,知道原因了,关闭这个窗口,打开终端命令窗口
把上面的命令输进去,回车
等待升级pip
出现“Successfully installed pip-22.2.1”,pip安装升级完毕,我们再重新安装PIL试试
还是报错
它是说在豆瓣的仓库里没有找到匹配的资源。先不纠结这个了,换个思路,先安装Image吧,同样的方式安装成功。
此时所有的错误都消失了
先准备一张webp格式的图片,修改srcImagePath为你的图片路径,并执行这个程序。
好了,看一下是不是已经转换成功。
现在只是初步跑通了程序,下一章我们将详细讲解一下具体代码,并对代码进行优化,使之成为一个真正能用的工具。