使用Plone和Archetypes裁剪图像而不是缩放

时间:2012-06-28 08:46:01

标签: plone archetypes

我们想要裁剪图像而不是缩放(Archetypes ImageField),这样左上角(或任何角落)会自动以给定的比例显示。

我在Plone中有哪些选项/附加组件?

4 个答案:

答案 0 :(得分:2)

您可能对新插件plone.app.imagecropping感兴趣。它基于ggozad的plone.app.imaging分支,由于plone FTW决定而被考虑因素(参见plip #10174)。目前没有可用的版本,但这将在不久的将来发生变化。

答案 1 :(得分:0)

我不知道任何插件来实现这一目标;所以我会回答:你必须发展它。

答案 2 :(得分:0)

在服务器端裁剪图像,然后维护图像的blob副本太麻烦了。

相反,只需使用Archetypes验证器设置文件上载限制,以使文件保持合理的小:

http://collective-docs.readthedocs.org/en/latest/content/archetypes/files.html#setting-max-file-size-to-filefield-and-imagefield

然后使用CSS裁剪图像。

左上角作物的相关css:

.product-listing .info-box .main-image-wrapper {
    display: block;
    background: white;
    border: 1px solid #eee;
    width: 280;
    height: 205px;
    padding: 10px;

    margin-bottom: 30px;
    box-shadow: 0 0 3px #aaa, 0 5px 3px #aaa;

    transition: background 0.5s, box-shadow 0.5s;
    -moz-transition: background 0.5s, box-shadow 0.5s; /* Firefox 4 */
    -webkit-transition: background 0.5s, box-shadow 0.5s; /* Safari and Chrome */
    -o-transition: background 0.5s, box-shadow 0.5s; /* Opera */
}

.product-listing .info-box .main-image-container {
    display: block;
    width: 280px;
    height: 205px;
    background: transparent no-repeat top left;
}

.product-listing .info-box .main-image-wrapper:hover {
    background: #eee;
    box-shadow: 0 0 3px #aaa, 0 6px 5px #666;
}

相关TAL:

<a class="main-image-wrapper" tal:attributes="href python:view.getTargetLink(context)" tal:condition="python:getattr(product.aq_base, 'image', None) != None">
    <div class="main-image-container"
         tal:attributes="style string:background-image:url(${context/absolute_url}/@@images/image)"
         class="main-image">

         <!-- -->

    </div>

</a>

答案 3 :(得分:0)

我刚开始为客户做这个,作为p.a.imaging的一个分支。它从未被集成,但希望你几乎可以使用它:

https://github.com/plone/plone.app.imaging/tree/ggozad-cropping