跳转到主要内容

为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 在模板中引入了使用图像缩放的新方法。您可以选择不同的变体,具体取决于您需要的灵活性和便利性

  1. 标签方法生成完整的图像标签

    <img tal:define="scales context/@@images"
         tal:replace="structure python: scales.tag('image',
                      width=1200, height=800, direction='down')"
         />

    第一次调用需要存储加载图像数据并提取缩放信息,而后续调用因为每个调用签名的元数据已存储,所以成本低。

    可以使用关键字参数 direction 来指定缩放方向。其他参数作为元素属性渲染(通常是:“title”和“alt”)。

  2. 对于使用预定义缩放名称生成标签,看起来是这样的

    <img tal:define="scales context/@@images"
         tal:replace="structure python: scales.tag('image', scale='mini')"
         />

    这将使用预定义的缩放大小“mini”来确定所需的图像尺寸,但仍允许传入额外的参数。

  3. 以下遍历语法是预定义图像缩放生成标签的快捷方式

    <img tal:replace="structure context/@@images/image/mini" />
  4. 相同的语法也可以用于原始图像

    <img tal:replace="structure context/@@images/image" />
  5. 缩放方法返回一个图像缩放对象,用于显式生成标签

    <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.scalescaleImage 函数传递额外的参数,例如 directionquality

    请注意,缩放方法在每个调用时都会将实际的图像数据加载到内存中。

  6. 图像缩放对象还实现了 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)

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

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

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 (40.5 kB 查看哈希值)

上传时间

构建分发

plone.app.imaging-2.1.2-py2.py3-none-any.whl (38.5 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面