gpt4 book ai didi

tridion - 在 Tridion 2011 上调整图像库的图像大小

转载 作者:行者123 更新时间:2023-12-04 13:04:25 25 4
gpt4 key购买 nike

我目前正在开发一个网站,该网站将在某些详细信息页面上显示图片库。它必须在底部显示带有小缩略图的导航,并且必须为每个元素显示一些基本信息和大图像。

大图像也必须调整大小,因为它们有一个最大尺寸。

关键是每个多媒体组件只使用一个源图像,并且能够在发布时调整图像大小,因此,源图像将被发送到客户端浏览器一个缩略图和一个大图像。仅使用样式或 HTML 来显示大小图像是可能的,但这是非常低效的,因为源图像(其中一些非常重)总是发送给客户。

我的第一个想法是自定义代码片段,它是用 C# 编写的,但我发现仅将一些图像调整到一定大小然后再将它们调整到另一个大小很复杂。我也找不到用适当的路径替换最终 HTML 上的 SRC 的方法。

另一个想法是创建一个旧式 PublishBinary 方法,但我发现这真的很复杂,因为看起来当前的 Tridion 架构根本不打算这样做......

最重要的一点是,即使我们可以成功(以某种方式)调整大小,目前发布两次相同的图像也是 Tridion 2011 的问题。大版本和小版本实际上都来自同一个多媒体组件,因此不可能同时发布它们或使用名称,第一个将永远消失,因为路径将使用第二个更新:-S。

有任何想法吗?

最佳答案

我在过去构建了一个图像大小调整 TBB,它读取 Dreamweaver 或 XSLT 模板的输出。这个想法是使用第一个模板生成如下所示的标签。

<img src="tcm:1-123" maxWidth="250" maxHeight="400" 
cropPosition="middle" variantId="250x400"
action="PostProcess" enlargeIfTooSmall="true"
/>

“重新调整大小” TBB 然后对包中的输出项进行后处理,查找具有后处理操作的节点。

然后它使用 System.Drawing 创建多媒体组件的变体。图书馆根据 maxHieghtmaxWidth维度属性,并使用 AddBinary() 发布它方法@frank 提到并使用 variantId文件名前缀和变体 id 的属性(并将 SRC 属性替换为新二进制文件的 URL)。

为了使这 100% 灵活,如果 maxHeight 中的任何一个或 maxWidth属性设置为 0,TBB 仅根据“非零”尺寸重新调整大小,或者如果两者都设置,则根据cropPosition 属性裁剪图像。这使我们能够为横向和纵向图像制作方形缩略图,而不会扭曲它们。 enlargeIfTooSmall属性用于防止小图像被拉伸(stretch)太多。

您可以在此处查看最终画廊的样本: http://medicine.yale.edu/web/help/examples/specific/photo/index.aspx

和其他图像大小调整示例:
http://medicine.yale.edu/web/help/examples/general/images.aspx

所有图像只需一次上传到 CMS,然后在发布时即时调整大小和裁剪。

关于tridion - 在 Tridion 2011 上调整图像库的图像大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10996239/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com