【问题标题】:TYPO3 FileReference converts tiff and bmp to gifTYPO3 FileReference 将 tiff 和 bmp 转换为 gif
【发布时间】:2016-10-13 01:25:36
【问题描述】:

在 TYPO3 中上传和使用 tiff 或 bmp 文件并通过 f:image 包含它们会导致它们被转换为 gif 文件。我正在使用 ImageMagick。我找不到有关此问题的任何信息,但我想知道,因为即使上传 100% jpg 文件也会导致双重压缩,而上传 bmp 和 tiff 则不会。任何想法如何配置typo3将tiff和bmp转换为jpg而不是gif?无法想象这是正确的行为。

编辑:

我发现输出格式的决定是在

TYPO3\CMS\Core\Resource\Processing\AbstractGraphicalTask::determineTargetFileExtension

如果没有给定配置,它将对所有非 jpg 图像使用 gif 或 png。我重载了

\TYPO3\CMS\Core\Resource\Processing\ImageCropScaleMaskTask 

它扩展了 AbstractGraphicalTask​​ 并重写了函数以正确转换 bmp 和 tiff。

覆盖 ext_localconf.php 中的默认 fal 配置

$GLOBALS['TYPO3_CONF_VARS']['SYS']['fal']['processingTaskTypes']['Image.CropScaleMask'] = \i3\I3Content\Resource\Processing\ImageCropScaleMaskTask::class;

新功能:

protected function determineTargetFileExtension() {

    if (!empty($this->configuration['fileExtension'])) {
        $targetFileExtension = $this->configuration['fileExtension'];
    } else {
        // explanation for "thumbnails_png"
        // Bit0: If set, thumbnails from non-jpegs will be 'png', otherwise 'gif' (0=gif/1=png).
        // Bit1: Even JPG's will be converted to png or gif (2=gif/3=png)

        $targetFileExtensionConfiguration = $GLOBALS['TYPO3_CONF_VARS']['GFX']['thumbnails_png'];
        if ($this->getSourceFile()->getExtension() === 'jpg' || $this->getSourceFile()->getExtension() === 'jpeg') {
            if ($targetFileExtensionConfiguration == 2) {
                $targetFileExtension = 'gif';
            } elseif ($targetFileExtensionConfiguration == 3) {
                $targetFileExtension = 'png';
            } else {
                $targetFileExtension = 'jpg';
            }
        } else {
            // check if a png or a gif should be created
            if ($targetFileExtensionConfiguration == 1 || $this->getSourceFile()->getExtension() === 'png') {
                $targetFileExtension = 'png';
            } elseif($this->getSourceFile()->getExtension() === 'tif' || $this->getSourceFile()->getExtension() === 'tiff' || $this->getSourceFile()->getExtension() === 'bmp') {
                $targetFileExtension = 'jpg';
            } else {
                // thumbnails_png is "0"
                $targetFileExtension = 'gif';
            }
        }
    }

    return $targetFileExtension;
}

【问题讨论】:

  • 那么你现在解决了吗?
  • 是的,上面的代码解决了这个问题。

标签: typo3 gif tiff fluid extbase


【解决方案1】:

通过安装工具检查$TYPO3_CONF_VARS[GFX][thumbnails_png] 设置。调整图像大小时,有多种转换不同格式的选项。

【讨论】:

    猜你喜欢
    • 2012-04-18
    • 1970-01-01
    • 2010-10-19
    • 2013-08-15
    • 1970-01-01
    • 1970-01-01
    • 2011-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多