写在前面

因为经常要更新博客,每篇博客里都会有大量的图片,尤其是游记里很多图片都是自己拍的,文件都特别大,所以每次我都会尝试转成webp格式进行压缩。

WebP 是一种现代图片格式,可为网络上的图片提供出色的无损和有损压缩。使用 WebP,网站站长和 Web 开发者可以创建更小、更丰富的图片,从而提高网页加载速度。

与 PNG 相比,WebP 无损图片的尺寸缩小了 26%。WebP 有损图片比采用等效 SSIM 质量指数的同等 JPEG 图片小 25-34%。

无损 WebP 支持透明度(也称为 Alpha 通道),但只需额外增加 22% 的字节。对于可以接受有损 RGB 压缩的情况,有损 WebP 也支持透明度,其文件大小通常比 PNG 小 3 倍。

动画 WebP 图片支持有损、无损和透明度,与 GIF 和 APNG 相比,此类图片可缩减大小。

详见:https://developers.google.com/speed/webp?hl=zh-cn

操作过程

最开始我尝试的转换工具是PhotoShop,一张一张的转换,后来我发现实在是太费劲了,既然我要将图片传到博客里为什么不批量转换之后在选取呢,所以我尝试采用大模型帮我写一个程序可以批量做这个处理。下面过程是我尝试使用Claude-3.5写的webp批量转换工具:

最后代码运行结果如下:

在选择输出的文件夹里生成了webp格式的图片:

结论

在上述的对话中,我们完成了以下几个主要任务:

  1. 开发了一个带有图形用户界面(GUI)的程序,用于将JPG或PNG图片批量转换为WebP格式。

  2. 最初使用PyQt6开发GUI,但由于在Mac系统上遇到了兼容性问题,我们转而使用Python的标准库Tkinter来创建GUI。

  3. 实现了图片压缩功能,将转换后的WebP图片大小降低到原图的约20%。

  4. 将程序的用户界面从英文翻译成了中文,使其更适合中文用户使用。

总的来说,整个开发流程完全在对话中实现,基本没有怎么关注代码,只是要不断尝试编译代码,但整体下来花费不到五分钟就实现了自己想要的功能。

本次代码编写采用的是Claude3.5模型,Claude是Anthropic公司开发的先进AI模型。