一种python web服务器,它使用枕头动态地缩放、裁剪、转换和提供来自s3或本地文件系统的图像

yg.thump的Python项目详细描述


与Thumpy会面

thumpy是一个可裁剪和缩放图像的python web服务。它不存储 什么都行。它被用作CDN后面的源服务器 亚马逊云锋。

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

裁剪

将宽度裁剪为200,高度裁剪为100:

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

将宽度和高度裁剪为50:

http://mythumpyserver.somewhere/castle.jpg?cw=50&ch=50
  • 暴徒总是在收割前先缩放。
  • 恶棍总是从图像的中心切出。

显示遮罩/缩放剪裁

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

遮罩应该应用于原始图像,这意味着没有缩放,只有遮罩。

请参见:缩放(后期处理)以获取缩放的遮罩/裁剪。

获得100px x 50px缩放的裁剪图像,在20px x 10px左上偏移处应用350px x 175px的显示遮罩。

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

灰度

不调整大小的灰度图像示例:
http://mythumpyserver.somewhere/castle.jpg?gray=1

云阵丑陋

如果thumpy配置中的“cloudfront_u ugity”选项设置为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

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

推荐PyPI第三方库


热门话题
java错误:无法解析方法   如何用相同的父标记和子标记在Java中解析XML?   日期使用Java中的时区偏移将本地时间转换为UTC   java如何在多进程、多线程环境中读取文件   WebView中的java弹出式对话框不在当前显示范围内,但在chrome浏览器中运行良好   只有2个参数的java递归二进制搜索方法   无法在java中调用函数   java JavaMail在Tomcat服务器上运行时停止工作   反射通过java程序生成、编译和运行java类   java Android:如何使ListView即使在应用程序关闭后仍保持禁用状态   在JAVA中识别匿名类实例   java渲染一个由三角形组成的立方体,在旋转时会产生奇怪的角度   函数式编程如何基于比较连续的列表元素将Java流减少为布尔值   java如何替换列表中的多个项目?   java Android如何获取随机sqlite数据?   java我已经将useSSL设置为false,但仍然收到警告   java使用动态变量生成jlabel   apachespark:java。lang.NoClassDefFoundError v2TableWithV1回退