一个使用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
缩放(后处理)
与上面的缩放相同,但应用于所有转换后的输出图像
裁剪
裁剪宽度为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
灰度
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的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3d1656948e7796b2bb6f3d1ac4605ea155d7562cc2ea16c47032a9e7e7222e90 |
|
MD5 | 9c461ca90c74d2f8de7a4d5ca5bfcd56 |
|
BLAKE2b-256 | 39bc8ede4bd662d8ff3ac8f4dc49edbead6c9b0e932d8350c908787add87e8cd |