跳转到主要内容

为sorl-thumbnail提供的后端插件,用于优化缩略图

项目描述

版权所有 Peter Bengtsson,mail@peterbe.com,2015-2016

Travis

许可证:BSD

关于optisorl

sorl-thumbnail 是一个优秀的Django库,它可以自动将存储的图像转换为所需的尺寸的缩略图,并将其以美观的名称存储在 MEDIA_ROOT 中。问题是,执行缩放的引擎通常并不擅长优化这些图像。通常,优化图像意味着仔细删除人眼无法察觉的东西。当您创建的缩略图分辨率非常小,用户几乎没有机会注意到时,这一点变得极其相关。

此软件包是 sorl-thumbnail 的一个可插拔后端,它试图在图像写入磁盘后立即对其进行优化。

安装

首先,简单执行 pip install optisorl

然后在您的Django设置中添加以下内容

THUMBNAIL_BACKEND = 'optisorl.backend.OptimizingThumbnailBackend'

然后查看以下关于PNG、GIF和JPEG的设置。

优化PNG

optisorl 使用一个名为 pngquant 的二进制文件,这是一个命令行工具,用于对PNG图像进行有损压缩,并支持alpha透明度。 pngquant 使用BSD许可证。它容易安装在大多数系统上。例如 brew install pngquantapt-get install pngquant

发生的情况是,当 optisorl 检测到一个缩略图已被创建(并存储在 MEDIA_ROOT 中)时,它会执行 pngquant,如下所示:

pngquant -o /path/file.tmp.png --skip-if-larger -- /path/file.png

注意 --skip-if-larger 选项,这意味着如果缩略图已经非常小,那么优化后的结果可能并不会更好,因此会跳过优化。

如果您想覆盖 pngquant 可执行文件的路径,可以设置以下配置:

# in settings.py or equivalent

PNGQUANT_LOCATION = '/opt/special/bin/pngquant2.0'

优化 GIF 图像

optisorl 使用 gifsicle 进行 3 级优化。gifsicle 是 GPL 许可证,但其使用不受许可证限制。要安装它,可以使用 brew install gifsicleapt-get install gifsicle

要覆盖 gifsicle 可执行文件的路径,您可以在配置中设置:

# in settings.py or equivalent

GIFSICLE_LOCATION = '/opt/special/bin/gifsicle'

如果您想禁用 GIF 图像的所有优化,只需将 GIFSICLE_LOCATION(在您的 settings.py 中)设置为 NoneFalse

优化 JPEG 图像

optisorl 使用 mozjpeg 来优化 JPEG 图像。它非常适合,因为它几乎不会降低到人眼可以察觉的质量。尤其是在缩略图相对较小的情况下。我们执行 mozjpeg 的命令如下所示:

mozjpeg -outfile DESTINATION -optimise SOURCE

您可以通过设置来覆盖可执行文件的路径:

# in settings.py or equivalent

MOZJPEG_LOCATION = '/my/bin/mozjpeg'

要了解使用 mozjpeg 可以获得什么样的结果,请参阅这篇博客文章:[mozjpeg 优化示例](https://www.peterbe.com/plog/examples-of-mozjpeg-savings)。还可以查看关于安装和示例的博客文章:[mozjpeg 安装和示例](https://www.peterbe.com/plog/mozjpeg-installation-and-sample)。

限制

欢迎提供帮助。目前…

  • 不支持 S3 存储

  • 无法在运行时禁用图像优化

  • 无法覆盖某些 pngquant 参数

  • 无法覆盖某些 gifsicle 参数

  • 无法覆盖某些 mozjpeg 参数

项目详情


下载文件

下载适合您平台文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源分布

optisorl-0.2.1.tar.gz (4.5 kB 查看散列)

上传时间

构建分布

optisorl-0.2.1-py2-none-any.whl (6.8 kB 查看散列)

上传时间 Python 2

由...