WSGI中间件用于图片缩放
项目描述
用途
包 cykooz.thumbs 实现了用于修改应用程序发送的图片的WSGI中间件。
中间件构造函数
cykooz.thumbs.middleware.Thumbs(application, cache_dir, sizes, **kwargs)
参数
- application
被中间件包装的应用程序
- cache_dir
图片缓存存储的文件夹路径
- sizes
包含允许图片尺寸参数的字典
sizes参数的示例值
{ 'small': {'size': (100, 100), 'scale_method': 'crop', 'quality': 80}, 'preview': {'size': (800, 600)}, 'png_thumb': {'size': (50, 50), 'scale_method': 'crop', 'quality': 'png'} }
其中
- size
要将图片缩放到的大小。如果一个尺寸为零,则使用原始图片的相应尺寸。
- scale_method
缩放模式(默认为‘fit_stretch’)
- ‘crop’
裁剪图片到指定比例,并填充到指定大小;
- ‘stretch’
拉伸图片到指定大小;
- ‘squash’
与‘stretch’相同,但如果图片的两个尺寸都小于所需尺寸,则返回原始图片;
- ‘fit_stretch’
将图片填充到指定大小,同时保持原始比例;
- ‘fit_squash’
与‘fit_stretch’相同,但如果图片的两个尺寸都小于所需尺寸,则返回原始图片。
- quality
如果指定为‘png’,则将图片压缩为PNG。默认为75。
Paste 的配置示例
[filter:thumbs] use = egg:cykooz.thumbs cache_dir = %(here)s/images_cache sizes = small = 100x100,crop,q80 preview = 800x600 png_thumb = 50x50,crop,qpng
WSGI 应用程序
该包包含一个简单的应用程序,该应用程序被中间件包装。该应用程序简单地返回由参数 image_dir 指定的文件夹中的文件。
Paste 应用程序的配置示例
[app:main] use = egg:cykooz.thumbs image_dir = %(here)s/images cache_dir = %(here)s/images_cache sizes = small = 100x100,crop,q80 preview = 800x600 png_thumb = 50x50,crop,qpng
启动应用程序
项目附带了 Buildout 的配置以启动应用程序和 PasteDeploy 的配置示例。Buildout 配置
创建 ./bin/paster 脚本
编译 WSGI 服务器 uWSGI
创建 ./bin/wsgi-script 脚本,用于通过 mod_wsgi 或 uWSGI 启动应用程序
启动应用程序的示例命令(uWSGI)
user@user-pc:~/cykooz.thumbs$ ./bin/uwsgi --ini ./etc/thumbs_example.ini
在浏览器中获取缩放后的图片
例如,您可以通过以下方式在浏览器中获取缩放后的图片
http://www.site.ru/images/big_images.jpg?view=small http://www.site.ru/images/big_images.jpg?view=preview
清除浏览器缓存
要清除图片缓存,只需加载一个被中间件捕获的特殊参数的地址即可
http://www.site.ru/images/big_images.jpg?view=__clear_cache__ или http://www.site.ru/?view=__clear_cache__
更改日志
版本 0.3.1
修复了通过 ‘crop’ 方法将小图片缩放到大尺寸时的缩放问题。
版本 0.3
更改了将参数传递给中间件的方式
重命名了缩放方法
'scale_fit' => 'fit_stretch' 'scale_stretch' => 'stretch'
添加了新的缩放方法 ‘squash’ 和 ‘fit_squash’
版本 0.2
添加了 crop 参数
添加了 scale_fit 和 scale_stretch 参数
添加了用于指定 JPEG 压缩质量或保存为 PNG 的参数
添加了一个简单的 WSGI 应用程序,它从指定的目录返回文件,并由处理图像的中间件包装。
Buildout 现在安装 wsgi 服务器 uWSGI 并创建 wsgi-script 以启动应用程序
添加了 Paste 和 uWSGI 应用程序的配置示例
版本 0.1
初始发布
cykooz.thumbs-0.3.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9d4abb60ce14d1e3e2d9d50f085851517bf9ba46c4a8f53dc14953495e3d9473 |
|
MD5 | 92b2d6c6dcacd60707d48b510a7f0045 |
|
BLAKE2b-256 | 2668c86b91966fac84efed8abead56fa46703f8120f28f1928fc7147f6002e56 |