public function getMimeType()
{
if (!$this->mimetype) {
// get target mime type without actually generating the thumbnail (deferred)
$mapping = ["png" => "image/png", "jpg" => "image/jpeg", "jpeg" => "image/jpeg", "pjpeg" => "image/jpeg", "gif" => "image/gif", "tiff" => "image/tiff", "svg" => "image/svg+xml"];
$targetFormat = strtolower($this->getConfig()->getFormat());
$format = $targetFormat;
$fileExt = \Pimcore\File::getFileExtension($this->getAsset()->getFilename());
if ($targetFormat == "source" || empty($targetFormat)) {
$format = Thumbnail\Processor::getAllowedFormat($fileExt, ["jpeg", "gif", "png"], "png");
} elseif ($targetFormat == "print") {
$format = Thumbnail\Processor::getAllowedFormat($fileExt, ["svg", "jpeg", "png", "tiff"], "png");
if (($format == "tiff" || $format == "svg") && \Pimcore\Tool::isFrontentRequestByAdmin()) {
// return a webformat in admin -> tiff cannot be displayed in browser
$format = "png";
}
}
if (array_key_exists($format, $mapping)) {
$this->mimetype = $mapping[$format];
} else {
// unknown
$this->mimetype = "application/octet-stream";
}
}
return $this->mimetype;
}