【问题标题】:TYPO3 Fluid: Force image format to be jpgTYPO3 Fluid:强制图像格式为 jpg
【发布时间】:2019-06-24 19:45:53
【问题描述】:

我有一个使用 Fluid 模板的扩展,如下所示:

<div class="bgimg" style="background-image: url({f:uri.image(src:'uploads/tx_slider/{homeslider1.bgimage}', treatIdAsReference:1, maxWidth:'1600')})"></div>

这很好用 - 背景图像被正确引用 - 如果图像太大,则会调整大小。但是,我的客户开始上传 PNG 格式的图像,这导致网站输出中的文件很大(> 5MB)。

我没有找到任何选项来告诉 Fluid 图像助手在处理时将 ​​PNG 图像转换为 JPG。我能做什么?

【问题讨论】:

    标签: typo3 fluid fluid-images


    【解决方案1】:

    从 TYPO3 10.3 开始,有一个名为“fileExtension”的新流体属性。

    &lt;f:image fileExtension="jpg" image="{file}" /&gt;

    您可以在此处阅读有关此功能的更多信息:https://docs.typo3.org/c/typo3/cms-core/main/en-us/Changelog/10.3/Feature-90416-SpecificTargetFileExtensionInImage-relatedViewHelpers.html

    【讨论】:

    • 很棒的新功能。感谢提及。
    【解决方案2】:

    我的问题没有答案 - 但这是我的解决方法:

    DELETE FROM sys_file_processedfile;
    SELECT DISTINCT REPLACE(CONCAT('magick .', identifier, ' .', identifier, '.jpg'), 'user_upload/', 'fileadmin/user_upload') AS cmd FROM sys_file WHERE extension='png' AND size > 500000;
    SELECT DISTINCT CONCAT('fart.exe "sqlbackup.sql" "', SUBSTRING_INDEX(identifier, '/', -1), '" "', SUBSTRING_INDEX(identifier, '/', -1), '.jpg"') AS cmd FROM sys_file WHERE extension='png' AND size > 500000;
    

    查询1:删除图片缓存

    查询 2: 创建一个批处理命令,将所有大于 500kB 的 PNG 图像转换为 JPG。我从 Typo3 安装的根目录执行了这个批处理。必须安装 ImageMagick。

    查询 3: 创建一个批处理命令来替换数据库中所有出现的那些 PNG 文件。我创建了数据库的备份,然后在备份文件上运行了“fart.exe”。 Fart.exe 是一个快速简单的文本替换工具。之后我导入备份,清除缓存,然后 Typo3 使用更小的 JPG 文件(大约 250kB 与 5MB 相比)。

    【讨论】:

      猜你喜欢
      • 2015-09-19
      • 1970-01-01
      • 2014-06-18
      • 1970-01-01
      • 2023-03-05
      • 2023-03-14
      • 1970-01-01
      • 2020-07-19
      相关资源
      最近更新 更多