为Plone提供用户可配置、支持Blob的图像缩放。
项目描述
简介
本包尝试将来自Archetypes的图像缩放代码提取出来,作为一个独立的包进行重用,以便使其用户可配置,并添加将图像数据存储到ZODB blobs 的支持。
警告
2.x 版本仅适用于 Plone 5。
安装
使用此包的最简单方法是使用基于 zc.buildout 的安装。在这里,您可以简单地将该包添加到“eggs”和“zcml”选项中,运行buildout并重启您的 Plone 实例。
或者,您可以使用以下配置文件来扩展现有的buildout
[buildout] extends = buildout.cfg [instance] eggs += plone.app.imaging zcml += plone.app.imaging
之后,您应该能够通过 Plone 的配置面板(“站点设置”)的“附加产品”部分“快速安装”此包。
新式图像缩放
plone.app.imaging 在模板中引入了使用图像缩放的新方法。您可以选择不同的变体,具体取决于您需要的灵活性和便利性
标签方法生成完整的图像标签
<img tal:define="scales context/@@images" tal:replace="structure python: scales.tag('image', width=1200, height=800, direction='down')" />
第一次调用需要存储加载图像数据并提取缩放信息,而后续调用因为每个调用签名的元数据已存储,所以成本低。
可以使用关键字参数 direction 来指定缩放方向。其他参数作为元素属性渲染(通常是:“title”和“alt”)。
对于使用预定义缩放名称生成标签,看起来是这样的
<img tal:define="scales context/@@images" tal:replace="structure python: scales.tag('image', scale='mini')" />
这将使用预定义的缩放大小“mini”来确定所需的图像尺寸,但仍允许传入额外的参数。
以下遍历语法是预定义图像缩放生成标签的快捷方式
<img tal:replace="structure context/@@images/image/mini" />
相同的语法也可以用于原始图像
<img tal:replace="structure context/@@images/image" />
缩放方法返回一个图像缩放对象,用于显式生成标签
<img tal:define="scales context/@@images; thumbnail python: scales.scale('image', width=64, height=64);" tal:condition="thumbnail" tal:attributes="src thumbnail/url; width thumbnail/width; height thumbnail/height" />
这将创建一个最多64x64像素的缩小版本,存储在“image”字段中。它还允许通过 plone.scale 的 scaleImage 函数传递额外的参数,例如 direction 或 quality。
请注意,缩放方法在每个调用时都会将实际的图像数据加载到内存中。
图像缩放对象还实现了 tag 方法
<img tal:define="scales context/@@images; scale python: scale.scale('image', width=1200, height=800)" tal:replace="structure scale/tag" />
但是,建议直接使用图像缩放视图的 tag 方法,因为它避免了将图像加载到内存中。
缩放图像方向
支持使用 direction 参数的三个不同的缩放选项。
上缩放将最小维度缩放到所需大小,并在必要时裁剪其他维度。
下缩放首先将最大维度缩放到所需大小,并在必要时裁剪其他维度。
缩略图缩放不裁剪到请求的尺寸。生成的图像可能具有与请求不同的尺寸。此选项需要同时指定宽度和高度。《保持》可以作为此选项的替代拼写,但其使用已弃用。
缩放图像质量
可以通过“图像”控制面板来控制缩放图像的质量。
这只会对尚未缩放的图像生效。要重新缩放具有更新质量设置的现有图像,您需要进入ZMI > portal_atct > “图像缩放”选项卡,然后单击“重新创建”。这可能需要很长时间!
变更日志
2.1.2 (2021-06-15)
错误修复
修复了具有可能也是图像缩放id的子对象的遍历处理。[rpatterson]
2.1.1 (2019-10-09)
错误修复
修复了在ImageField缩放时无法将RGBA模式写入JPEG的问题。[avoinea]
2.1.0 (2018-10-30)
错误修复
在PloneTestcase现在是DX后,切换到新的TestCase。[pbauer]
2.0.7 (2018-02-05)
错误修复
导入与Python3兼容。[ale-rt]
2.0.6 (2016-12-19)
错误修复
在Python文件中添加编码头。[gforcada]
删除了plone.app.controlpanel的残余需求。[davisagli]
2.0.5 (2016-08-17)
错误修复
使用zope.interface装饰器。[gforcada]
2.0.4 (2016-06-07)
修复
修复测试,不缩放gif图像,这些图像在plone.scale版本< 2之前被转换为jpeg图像。使用png图像进行测试,这对所有版本的plone.scale都有效。[thet]
2.0.3 (2016-02-20)
修复
修复测试,不检查具体WebDAV内容类型头。这对于Zope 4兼容性是必需的。[thet]
2.0.2 (2016-01-08)
新功能
添加了关于‘方向’参数实际做什么的文档。[shadowmint]
2.0.1 (2015-11-26)
修复
修复了与five.pt和chameleon的不兼容性(关闭#16)。[rodfersou, maurits]
修复了通过webdav访问图像缩放时出现的404 NotFound错误。[maurits]
2.0.0 (2015-05-11)
将控制面板移至Products.CMFPlone。[vangheem]
删除了未使用的导入。[gforcada]
重新添加imaging doctests。[tomgross]
1.1.2 (2014-10-23)
将测试端口到plone.app.testing。[tomgross]
1.1.1 (2014-04-13)
在缩放生成和遍历时禁用csrf保护。[vangheem]
1.1.0 (2014-02-23)
当通过基于UID的URL访问时,使用plone.stableResource规则集缓存图像缩放。[davisagli]
将属性表imaging_properties及其相应的实用程序移至Products.CMFPlone。https://github.com/plone/plone.app.contenttypes/issues/82 [pbauer]
生成渐进式JPEG。[kroman0]
1.0.9 (2013-06-13)
使getQuality始终返回一个整数。
1.0.8 (2013-05-23)
通过配置单元使缩放图像的质量可配置。https://dev.plone.org/ticket/13337 [khink]
1.0.7 (2013-03-05)
避免对ATContentTypes的硬依赖。[davisagli]
1.0.6 (2012-04-15)
避免在生成标记时加载图像缩放对象。这很昂贵,因为它将图像数据加载到内存中。文档已更新以反映这是API的最有效用法。
1.0.5 - 2011-04-03
修复测试现在scale=None不会引发异常。[elro]
1.0.4 - 2011-03-22
向@@images添加一个标记方法,以简化全尺寸图像的标记。[elro]
使scale=None返回作为ImageScaling对象包装的原始图像。[elro]
1.0.3 - 2011-02-14
如果PIL不存在,避免在启动时中断。[davisagli]
1.0.2 - 2011-02-10
向@@images视图添加getAvailableSizes和getImageSize。[elro]
1.0.1 - 2011-01-03
使用自定义权限“Plone站点设置:成像”而不是通用“管理门户”来保护控制面板。[davisagli]
1.0 - 2010-07-18
使用标准库doctest模块。[hannosch]
更新许可证为仅GPL版本2。[hannosch]
1.0b11 - 2010-07-01
修复了基于存储其数据为链式Pdata对象的Image对象创建缩放时的问题。[davisagli]
避免使用已弃用的five:implements指令。[hannosch]
1.0b10 - 2010-05-01
对于MessageFactory,使用plone i18n域而不是plone.app.imaging域。这关闭了http://dev.plone.org/plone/ticket/10478 [vincentfretin]
修复了对plone.scale的依赖关系,以获取缩放存储的需求。[witsch]
修复了图像缩放url遍历代码中的逻辑错误。这修复了http://plone.org/products/plone.app.imaging/issues/1 [ramonski, witsch]
为“新闻条目”内容添加了对自定义缩放的支持。这引用了http://dev.plone.org/plone/ticket/10250 [pelle, witsch]
删除了未使用 uuid 分发的依赖声明。[hannosch]
修复控制面板定义,使其图标再次显示。[witsch]
1.0b9 - 2010-04-10
添加基于从 plone.scale 借鉴的想法生成图像缩放的新语法选项,同时改进缓存和失效。[witsch]
如果已安装,为 plone.namedfile 提供大小。[davisagli]
恢复定义每个字段图像缩放大小的可能性。这参考了 http://dev.plone.org/plone/ticket/10159 [huub_bouma, witsch]
1.0b8 - 2010-03-06
将测试设置转换为使用 collective.testcaselayer。[witsch]
添加对 createScales 的 monkey-patch,以修复缩放的重创。这参考了 http://dev.plone.org/plone/ticket/10186 [witsch]
1.0b7 - 2009-12-03
如果设置了图像字段上的该标志,则吞下调整大小的异常。[matthewwilkes]
添加测试以确保路径表达式中的缩放访问仍然有效。[davisagli, witsch]
1.0b6 - 2009-11-18
纠正了包含双引号的无效 msgid。[hannosch]
1.0b5 - 2009-11-15
允许在图像缩放定义中包含空白。这修复了 http://dev.plone.org/plone/ticket/9207 [amleczko]
1.0b4 - 2009-10-29
重构默认缩放处理器,使其对 plone.app.blob 中的 blob 启用版本更具可重用性。[witsch]
1.0b3 - 2009-08-26
修复与 Plone 4.0 的兼容性问题。[witsch]
将 monkey-patching 和遍历适配器注册的延迟重新设置为包安装时间。[witsch]
1.0b2 - 2009-07-08
将遍历处理器在本地注册,以避免在没有相应 monkey patch 的情况下出现问题。请参阅 http://plone.org/products/plone.app.blob/issues/19 中的第二个问题以获取更多信息。[witsch]
在 getAllowedSizes 中将 getUtility 替换为 queryUtility 调用。[hannosch]
1.0b1 - 2009-05-14
添加确定可用图像大小的回退,以避免破坏尚未安装该包的网站。[witsch]
1.0a2 - 2008-09-22
修复 getAvailableSizes 以不依赖于 sizes 字段属性。[witsch]
1.0a1 - 2008-08-12
初始版本 [witsch]
初始包结构。[zopeskel]
项目详情
plone.app.imaging-2.1.2.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c39bb607439a8de5531578562d734d79e6621bb6d15f2af89d881e300ab8e9ff |
|
MD5 | 66f8bb98fe4540927a771623659d93da |
|
BLAKE2b-256 | 0b4eef6f04402b3029976fa67ce11e3ff1c97662a17090804752980d622fe60d |
plone.app.imaging-2.1.2-py2.py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d5537c6dd3e01e4e0130fd62ba0668a05e749b3d75d1f56b1b00a09793a5c5f2 |
|
MD5 | 42f3cc1f861e5b3c5cf3d2c31eeacdef |
|
BLAKE2b-256 | 593b26da62f96ab682a3a64996aad12bf4656628233909842caa072c1186e7a8 |