首页 > 编程知识 正文

python太垃圾(python打包成exe太大)

时间:2023-05-05 15:16:44 阅读:931 作者:1387

文字|豌豆花和猫

来源|蟒蛇猫微信官方账号

这几天,我在用Github页面hexo建立我的个人网站。为了继续我的风格,我想把图片和文章一起迁移。这时候就出现了一个难题:我用的图片都是大尺寸高清图片,放到网站上会严重拖慢加载速度。因此,您需要在上传图片之前对其进行压缩。

我将需求总结如下:

批量压缩图片,大概有200张左右,后面会补充。

压缩,不剪切,不改变图片大小。

原图大部分是10M-30M,目标是压缩到1M以内,越小越好。

根据这些线索,我搜索了“批量压缩图片”、“图像压缩工具”和“批量处理图片”.

最初的想法是找到一个轻量级的图像压缩工具,并简单地处理它。但是不知道是搜索的姿势不对,还是过滤信息的姿势不对,结果不尽如人意。

发现的工具有本地和在线两种,测试后都不理想:有的软件是下载的,有的软件是付费发现的,有的直接导致程序在使用时卡壳,有的压缩率不足需要多次压缩,有的要求原始图片大小不超过5 M,有的要求批量处理量不超过20,有的不支持批量压缩.群里的朋友也帮忙推荐了PS批量处理、acdsee甚至手机应用snapseed,都不尽如人意。

花了很多时间,偶然看到一篇用Python压缩图片的文章。我吵醒了几个错误的人。我怎么没想到呢?

先看看别人是怎么做的。本文《如何用Python智能批量压缩图片?》(https://zhuanlan.zhihu.com/p/32246003)介绍了利用PIL图书馆的Image模块压缩图片的方法,主要是通过调整图片的长度和宽度。

PIL是一个强大的图像处理库,但是它只支持Python 2,而且已经很久没有更新了。一些开发人员基于它改进和维护了枕头,并支持Python 3。以前听说过,但是没用过。所以猫哥查了几个教程和文档。看完之后发现它压缩图片的方法主要是比例缩放、裁剪、换格式,这不是我想要的。

还看到一篇文章《如何在无损的情况下让图片变的更小》(https://Jue Jin . im/post/5959 fbee 0 f 265 da 6 c 2518d 740),介绍了Yelp(美国最大的评论网站)图片优化的三个策略:抱枕、动态调音、换编码器。有些方法要求很高,应该是行业的先进经验,但他们要保证画面完好无损。所有的方法平均可以减少30%的图片大小,所以不符合我的要求。另外介绍了几种方法,但是学习需要时间,我放弃了。

最后我终于找到了一个非常方便和满意的解决方案,现在我要进入正题了。(不要觉得我啰嗦,探索的过程也很有趣。)(嘘,其实是因为下面要介绍的方法太简单了,只有几行代码,实在忍不住强行加戏.)

小心分界线。

Tinypng网站提供在线图像压缩服务,是最好的图像压缩工具之一。但是也有一些限制:最多可以批量处理20张图片,每张图片的大小不允许超过5M。

这个网站很尽责,开了免费的API。API取消了每张图片的大小限制,每月只限制处理500张图片。这对我来说已经足够了。

下面是如何使用它。第一步是在它的网站上注册,获得专属的API_KEY。使用电子邮件注册,非常简单。

然后安装软件包:

pip安装-升级tinify

接下来,处理图片:

import tinify import ostinify . key='填入您的密钥' path=' c : users Yunpoyue pictures cat ' #文件中存储图片的路径dirpath,dirs,Files OS.walk(路径): img path=OS . path . join(dirpath,file) print ('compressing . ')img path)tinify . from _ file(img path)。To _ file (imgpath)少于10行代码,这很容易。20 M图片可以压缩到2 M,压缩比达到惊人的90%,效果喜人。

其API还提供了图像裁剪、水印、压缩图像保存到云服务提供商(亚马逊云、谷歌云)的功能,功能非常强大。只不过压缩过程有点慢,无可挑剔。

经过一番探索和比较,我确信这是目前最好的解决方案,所以我强烈地和大家分享一下。

标题:PEPEX ELS,CC0授权。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。