用纯python编写的命令行界面(cli)实用程序,帮助您减小图像的文件大小。

optimize-images的Python项目详细描述


优化图像Github commits (since latest release)PyPIPyPI - Downloads

一个用纯python编写的命令行界面(cli)实用程序,可以帮助您 减小图像的文件大小。

这个应用程序是纯python的,没有特殊的依赖关系 除了枕头,因此确保与广泛的系统兼容, 包括运行pythonista 3的iphone和ipad。如果你不需要 对于如此严格的依赖关系管理,您可能会得到更好的服务 任何其他基于 已知的外部二进制文件。

optimize-images_screenshot

文档

安装和依赖项:

要安装并运行此应用程序,您需要 Python3.6+安装。我们尽量减少外部依赖性, 为了保持与不同平台的兼容性,包括pythonista 在iOS上。此时,我们需要:

  • 枕头>;=5.1.0
  • PixIF & gt=;1.1.2

在一个步骤中安装它(包括任何依赖项)的最简单方法是 使用此命令:

pip3 install pillow optimize-images

但是,如果您使用的是带有python 3.6和macos x 10.11el-capitan或 早些时候,你应该使用枕头5.0.0(而不是: pip3 install pillow==5.0.0 optimize-images)。如果你已经 迁移到Python3.7后,您应该可以使用Pillow5.1.0或更高版本。

您也可以在ios上使用此应用程序,使用 Pythonista 3(其中 一个非常好的环境,用于开发和/或运行纯python iOS上的应用程序)。请在中完整检查详细的安装过程 用户文档。

如何使用

最简单的用法是在shell中键入一个简单的命令, 将路径作为参数传递到包含图像的图像或文件夹。 可选的-nr--no-recursion开关参数告诉应用程序 递归扫描子目录。

默认情况下,此实用程序使用 可变质量设置在75到80之间(按枕头的刻度),即 根据引起的变化量为每个图像动态确定 在其像素中,然后删除任何exif元数据,尝试优化每个 编码器的最大空间减少设置,并应用最大ZLIB 压缩PNG。

必须显式地将路径传递给源映像文件或 包含要处理的图像文件的目录。默认情况下,它将扫描 递归地遍历所有子文件夹,并使用 默认或用户提供的设置,将每个原始文件替换为 如果文件大小小于原始文件,则为已处理版本。

如果给定文件没有节省空间,则原始版本将 而是被保留。

还有很多其他特性和命令行选项,比如缩小规模, 保持exif数据,减少颜色调色板,png到jpeg的转换。拜托 查看文档以了解更多信息。

免责声明:
请注意,通过替换 原始文件和处理过的文件。你一定要复制 在使用此实用程序之前,源文件或文件夹,以便能够 恢复任何最终损坏的文件或任何结果图像 所需质量。

基本用法

尝试优化单个图像文件:

optimize-images filename.jpg

尝试优化当前工作目录中的所有图像文件及其所有 子目录:

optimize-images ./

尽量优化当前工作目录中的所有图像文件,不要递归:

optimize-images -nr ./
optimize-images --no-recursion ./

获取帮助

要检查可用选项及其用法的列表,只需使用 以下命令:

optimize-images -h
optimize-images --help

你发现了虫子还是有什么建议?

请让我知道,打开一个新的问题或拉请求。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
DB H2和控制器的java集成测试   程序未通过if语句(Java)   java如何解决JPA更新时数据库中NOTNULL的值   3DES,Java代码结果产生不同于3DES在线工具和oracle数据库脚本的结果   java是否可以在XML中设置SwipeRefreshLayout的颜色方案?   java为什么JRBeanCollectionDataSource使用jr:List组件提供传递List的空字段?   java ScrollView只能托管一个直接子安卓   java是否有更短的代码或更简单的方法将元素添加到不同大小的多个数组中?   java为什么示例作者要硬编码正交摄影机的宽度和高度?(LibGdx僵尸鸟教程)   java不断得到非法的类型错误的开始,我如何才能纠正这一点并继续前进?   java如何获取正在运行的应用程序名称并将其与安卓上数据库中记录的名称进行匹配?   用于Java和if循环代码优化的if语句   if语句如果在JAVA中没有花括号,为什么if块可以放在另一个if块中   安卓操作系统。FileUriExposedException:file:///storage/emulated/0/test.txt通过意图暴露在应用程序之外。getData()   java索引不是错误,而是索引+索引=错误   java Android从改造调用中获取实时数据   java Tictaoe打印电路板   java Guice IoC怎么样?   java JLabel设置为文本列表项   java Hibernate MasterSubDetails映射