Hallo Spooky,
vielen Dank für den Tipp. Leider speichert Contao in diesem Falle nur das bestehende WEBP mit dem neuen Dateinamen ab.
Hier findet weder eine Skalierung noch eine Neukodierung statt.
Der einzige Weg, der bisher funktioniert hat, ist der Umweg über die Picture Factory. Sofern es nicht über die ImageFactory funktioniert, kann ich mit der PictureFactory-Lösung gut leben.
Code:
# config/config.yaml
contao:
image:
sizes:
social_sharing:
width: 640
height: 400
resize_mode: crop
formats:
webp: ['jpg']
png: ['jpg']
heic: ['jpg']
avif: ['jpg']
gif: ['jpg']
PHP-Code:
// templates/news_detail.html5
$objFile = FilesModel::findByPath($this->singleSRC);
if ($objFile !== null) {
$pictureFactory = System::getContainer()->get('contao.image.picture_factory');
$picture = $pictureFactory->create($objFile->getAbsolutePath(), '_social_sharing');
$src = $picture->getRawImg()['src'];
$rootDir = System::getContainer()->getParameter('kernel.project_dir');
$prefix = Environment::get('url') . '/';
$absoluteImageUrl = $src->getUrl($rootDir, $prefix);
}