TYPO3のtiffファイルまたはbmpファイルをアップロードして使用し、f:image経由でアップロードすると、beeingでgifファイルに変換されます。私はImageMagickを使用しています。私はこの問題について何も見つけることができませんでしたが、bmpとtiffをアップロードしている間は、100%のjpgファイルをダブル圧縮しても結果はアップロードされないため、疑問に思っています。 tiffとbmpをgpではなくjpgに変換するためにtypo3を設定する方法はありますか?これが正しい行動であるとは想像できません。TYPO3 FileReferenceはtiffとbmpをgifに変換します
編集:私は、それはすべての非JPG画像用のGIFまたはPNG形式を使用します。与えられた何も設定がない場合は、出力フォーマットの決定は
TYPO3\CMS\Core\Resource\Processing\AbstractGraphicalTask::determineTargetFileExtension
で行われていることが判明
。私はオーバーレイされた
\TYPO3\CMS\Core\Resource\Processing\ImageCropScaleMaskTask
AbstractGraphicalTaskを拡張し、bmpとtiffを適切に変換する関数を書き直しました。
はext_localconf.phpに
$GLOBALS['TYPO3_CONF_VARS']['SYS']['fal']['processingTaskTypes']['Image.CropScaleMask'] = \i3\I3Content\Resource\Processing\ImageCropScaleMaskTask::class;
新機能をデフォルトのFALの設定を上書き:
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;
}
これは今あなたのために解決されますか? –
はい、上記のコードはこの問題を解決します。 – i3rutus