跳转到主要内容

一个使用Pillow动态缩放、裁剪、转换并从S3或本地文件系统提供图像的Python网络服务器

项目描述

认识Thumpy

Thumpy是一个Python网络服务,用于裁剪和缩放图像。它不存储任何内容。它旨在用作位于CDN(如Amazon CloudFront)后面的源服务器。

Yg.thumpy是YouGov对Thumpy的分支。

配置

设置存储在settings.yaml文件中。它们应包括:- S3存储桶的名称和访问密钥 - 压缩质量(例如,80) - 允许的CORS主机列表

接口

Thumpy使用与S3上存储位置相同的路径提供服务。转换参数在查询字符串中指定,界面灵感来自TimThumb

示例

缩放

将宽度缩放为200px,并按比例缩放高度

http://mythumpyserver.somewhere/castle.jpg?w=200

将高度缩放为150px,并按比例缩放宽度

http://mythumpyserver.somewhere/castle.jpg?w=200

指定高度和宽度

http://mythumpyserver.somewhere/castle.jpg?w=200&h=150

缩放(后处理)

与上面的缩放相同,但应用于所有转换后的输出图像

http://mythumpyserver.somewhere/castle.jpg?pw=200&ph=150

裁剪

裁剪宽度为200px,高度为100px

http://mythumpyserver.somewhere/castle.jpg?cw=200&ch=100

裁剪宽度和高度为50px

http://mythumpyserver.somewhere/castle.jpg?cw=50&ch=50
  • Thumpy始终先缩放,然后再裁剪。

  • Thumpy始终从图像中心裁剪。

揭示蒙版/缩放裁剪

需要至少3个参数:- 顶部偏移量(例如,zct=100px) - 左侧偏移量(例如,zcl=100px) - 从偏移量输出的输出裁剪的宽度或高度。如果只提供了一个参数,则另一个参数将自动分配另一个参数的值。

蒙版应应用于原始图像,这意味着没有缩放,只有蒙版。

参见:缩放(后期处理)以获取缩放蒙版/裁剪。

从一个更大的图像中裁剪出100px x 50px,应用350px x 175px的显示蒙版,左上角偏移量为20px x 10px。

http://mythumpyserver.somewhere/castle.jpg?zcw=350&zch=175&zct=20&zcl=10&pw=100&ph=50

灰度

无缩放的灰度图像示例:

http://mythumpyserver.somewhere/castle.jpg?gray=1

Cloudfront 破坏性

如果thumpy的配置中的“cloudfront_ugliness”选项设置为true,则图像修改参数将从路径的第一部分中提取,而不是从URL查询字符串中提取。

这是为了解决Amazon Cloudfront在向您的源服务器发出请求时丢弃URL查询字符串的问题。示例

http://mycloudfrontdist.somewhere/w=100/path/to/image/castle.jpg

对于原始、未修改的图像,在查询字符串的位置放置一个“o”,如下所示:

http://mycloudfrontdist.somewhere/o/path/to/image/castle.jpg

项目详情


下载文件

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

源分发

yg.thumpy-1.0.1.tar.gz (483.6 kB 查看哈希值)

上传时间

由以下支持