缩略图现在由核心模块生成。它们不会创建比原始图像更大的缩略图。
考虑到这一点,你想要的可能是可变尺寸的缩略图,但这看起来会有点杂乱?目前尚不支持此功能。
我建议找一个折中方案,将缩略图做得更小,这样低分辨率的缩略图看起来就不会那么糟糕。
缩略图现在由核心模块生成。它们不会创建比原始图像更大的缩略图。
考虑到这一点,你想要的可能是可变尺寸的缩略图,但这看起来会有点杂乱?目前尚不支持此功能。
我建议找一个折中方案,将缩略图做得更小,这样低分辨率的缩略图看起来就不会那么糟糕。
好的,这可能是某些缩略图出现问题的原因,但这无法解释其他情况。我们有多个主题(有些是今天发布的,有些是在 TLP 插件升级之前发布的,可追溯到几周前),这些主题上传了宽度超过 2000px 的大图,但在首页生成的缩略图却非常小,只有 50px 和 100px。
[quote=“merefield, post:1125, topic:101646”]
仔细想想,你想要的可能是可变尺寸的缩略图,但这看起来会有点杂乱?[/quote]
不,我们想要的是统一的固定宽度和分辨率,高度则根据我们的设置自适应:
topic_list_thumbnail_width 设置为 284
topic_list_thumbnail_height 设置为 0
topic_list_thumbnail_resolution_level 设置为 4(我不得不使用 4,因为默认的 2 不正确……设置为默认的 2 时生成的是 1024px 的缩略图,而我需要的是 400px 的尺寸,这似乎对应级别 4)
我对这些设置的理解如下:
然而,论坛似乎随机地为某些主题提供 50px 或 100px 宽的缩略图……而且这些图像被显示在卡片框架内,而我们的网站卡片框架宽度始终为 284px。因此,由于较小的缩略图被拉伸以填满卡片,导致图像变得模糊。
请在 Firefox 中检查你的 /latest.json 输出,以查看正在存储哪些缩略图。
你也可以使用浏览器的开发者工具检查页面上显示的缩略图大小。
如果你发现任何异常情况,请告诉我。
啊,宽度设置对图块视图无关紧要。(尝试将其调低或调得非常高)只有分辨率才重要。
也许图块视图并不适合你?
我是否应该阻止低分辨率缩略图在图块视图中显示?即完全不显示它们。或许可以过滤掉所有 50 x 50 的缩略图。
我想我已经完全弄清楚是怎么回事了……这是基于我所见情况的最佳推测:
问题出在 TLP 访问 /latest.json 中的 thumbnails 的方式上。thumbnails 中每个主题包含的元素数量并不总是相同。如果被选为生成缩略图的原始主题图片实际宽度小于 1024 像素,那么该尺寸的缩略图就不会被生成,thumbnails 数组中也不会包含该尺寸的元素/条目。由于 thumbnails 缺少一个元素,插件的计数就会少一,从而返回错误的缩略图尺寸。如果原始主题图片宽度小于 800 像素,那么 1024 像素和 800 像素的宽度都不会被生成,插件计数就会少二,返回一个甚至更小的错误缩略图 ![]()
看起来该插件在需要时,似乎是遍历 thumbnails 数组直到某个预设的元素,而实际上它应该查找的是具有特定 max_width 的元素,该宽度应对应主题列表分辨率的网站设置。这样,即使 latest.json 中 thumbnails 数组的长度各不相同,主题也能返回正确的缩略图宽度。
这也能解释为什么我们论坛上的某些主题缩略图显示为 50 像素宽,有些是 100 像素宽,而大多数则是正确的 400 像素宽……那些显示较小宽度的主题,其原始图片的宽度要么小于 1024 像素,要么小于 800 像素。
希望这能说得通!
另外,能否请您添加 register_topic_thumbnail_size [300, 300]?因为我们的缩略图需要 284 像素的宽度,加载 300 像素的缩略图对我们来说比加载 400 像素的更好。理想情况下,我们更希望生成精确的宽度,但等您正式发布主题组件后,我可能会过渡到使用主题组件,并添加自己的自定义宽度。
感谢您对插件和组件所做的工作!![]()
抱歉,我还没完全理解这个问题。
您的示例解决方案并不相关,因为它生成的缩略图分辨率不超过 800x800。数组中分辨率最高的那个其实就是原始图片。
无论如何,我以为您担心的是低分辨率图片,那为什么要举一个关于如此大图片的例子呢?您是想说这张大图被以 50x50 的级别显示吗?
是的,缩略图数组的长度确实会变化。该算法的设计就是为了处理这种情况。可能存在某个 bug,但缩略图列表长度可变这一事实,已经是当前代码的隐含假设。
它会选取您选择的缩略图分辨率级别,并在必要时进行调整。例如:
正如我之前所说,如果只有 50x50 的分辨率可用,我或许应该在 Tiles 中完全抑制缩略图的显示。
如果您希望添加自定义分辨率,目前请自行 Fork 该插件。缩略图的分辨率是刻意设计为成倍递增的。如果只为您的需求而更改,会增加所有用户的磁盘空间占用。我认为没必要如此严格地匹配原始图片,因为它们只是缩略图预览。不过,也许确实有必要提供一个更贴近常见 Tiles 使用场景的分辨率。让我再考虑一下。
是的,我们注意到有几个主题中,大图是以 50x50 的级别显示的,尽管同时也存在 400x400 和 200x200 的级别。我观察到的唯一共同点是,上传的原始图片宽度要么小于 1024 像素,要么小于 800 像素,导致这些尺寸在缩略图数组中缺失。这让我认为该插件访问缩略图的方式与缩略图数组的长度有关。
我完全理解不添加自定义尺寸的原因。感谢你的详细解释 ![]()
好的,这信息很有用。可能存在一个 bug。我找时间查看一下。
我们绝对会采用这个功能,因为我非常希望能生成精确指定时间缩略图尺寸!
能否私信一张有问题的全尺寸图片,我来测试一下?另外,请确认您设置的分辨率级别,以及您在什么设备上遇到了此问题。
完成!感谢 @merefield 对此问题的调查。
我不确定是不是只有我遇到这个问题,但使用主题组件时,移动端的缩略图已停止工作。使用主题组件的帖子缩略图功能仍然正常,因此这似乎是一个漏洞。顺便提一下,我在控制台中没有看到任何相关信息。
无法复现,最新通过的测试均正常。
各位注意,升级窗口将于本周末关闭。
我刚刚对 Plugin 和 TC 进行了简要检查,一切正常。
请在周日之后不要进行升级。在下个月之前,我不会承诺修复破坏性变更。
经过一些故障排查,这似乎与事件插件存在冲突,您能复现吗?
我已在私信中做了更详细的说明,但基本上问题似乎出在 TLP 自定义分辨率尺寸上。如果我们上传宽度小于或等于 1024 像素的图片,则不会生成 1024x1024 的缩略图;如果上传宽度小于或等于 800 像素的图片,则不会生成 800x800 的缩略图。这是目前预期的行为。
但不符合预期的是,分辨率级别 2 实际上并没有加载 400x400 的尺寸,而是加载了以下内容:
我以为分辨率级别 2 会直接为所有主题加载 400x400 尺寸的缩略图。
David/Nick,
好的,我重新审视了用于选择分辨率的算法,并进行了改进。
此更新已部署到 TC 和插件中。
注意:新的分辨率比例范围为 0 到 6,其中 0 代表原始图像,1 代表次高分辨率,6 代表最低分辨率。
请更新您的插件/TC,并告知我们这是否解决了该问题。
@davidkingham, @internet_cookie,感谢你们提出这个问题。
(David,我认为这就是你遇到的问题的根源,但也可能我判断有误)。
我无法理解它们如何能协同工作(包括 TLP 插件)。两者都在覆盖移动端的主题列表项模板。这是一个无法接受的问题。目前,您需要在两者之间做出选择。
从长远来看,我可能会尝试一个仅通过 CSS 或插件出口(outlet)实现的版本,以避免模板覆盖,但这目前并非当务之急。
不过,TLP 为渲染 Tile 所需的覆盖程度,可能无法仅通过出口来实现。
太遗憾了,我本来很期待终于能恢复活动功能哈哈!我发现“主题缩略图”组件确实与活动插件兼容,我并不是质疑你的结论,只是想帮忙。这似乎也会覆盖模板吗?需要澄清一下,我指的是 Pavilion 的活动插件,而不是 Discourse 团队在日历插件中的那个。
因为它所使用的布局不需要覆盖模板。在 TLP 中,我布置了更多内容,其中一些位于嵌套的 div 中,因此无法以相同方式工作:我必须依赖模板覆盖。通常这并不太有风险,因为它是叶子节点。