Upload und Verwendung von TIFF- oder BMP-Dateien in TYPO3 und deren Einbindung über f: image führt dazu, dass sie in gif-Dateien konvertiert werden. Ich verwende ImageMagick. Ich konnte nichts über dieses Problem finden, aber ich frage mich, denn selbst das Hochladen von 100% jpg-Dateien führt zu einer doppelten Komprimierung, während das Hochladen von bmp und tiff nicht funktioniert. Irgendwelche Ideen, wie man typo3 konfiguriert, um tiff und bmp in jpg und nicht in gif umzuwandeln? Ich kann mir nicht vorstellen, dass dies das richtige Verhalten ist.TYPO3 FileReference konvertiert tiff und bmp in gif
edit:
ich fand heraus, dass die Entscheidung für das Ausgabeformat bei
TYPO3\CMS\Core\Resource\Processing\AbstractGraphicalTask::determineTargetFileExtension
getan wird Wenn es keine Konfiguration gegeben ist, wird es gif oder png für alle Nicht-JPG-Bilder verwenden. Ich überlastet die
\TYPO3\CMS\Core\Resource\Processing\ImageCropScaleMaskTask
die die AbstractGraphicalTask und umschrieb die Funktion erweitert, um richtig BMP und TIFF zu konvertieren.
die Config Standard fal in ext_localconf.php
$GLOBALS['TYPO3_CONF_VARS']['SYS']['fal']['processingTaskTypes']['Image.CropScaleMask'] = \i3\I3Content\Resource\Processing\ImageCropScaleMaskTask::class;
Neue Funktion überschreiben:
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;
}
So ist es jetzt für Sie gelöst? –
ja, das obige codiert löst dieses Problem. – i3rutus