Browse Source

Merge pull request #36546 from nextcloud/enh/36543/allow-further-previews

imaginary - fix generation of heif, pdf, illustrator and svg thumbnails
pull/36603/head
Anna 3 years ago
committed by GitHub
parent
commit
6236235d23
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 63
      lib/private/Preview/Imaginary.php

63
lib/private/Preview/Imaginary.php

@ -57,7 +57,7 @@ class Imaginary extends ProviderV2 {
}
public static function supportedMimeTypes(): string {
return '/image\/(bmp|x-bitmap|png|jpeg|gif|heic|svg|tiff|webp)/';
return '/(image\/(bmp|x-bitmap|png|jpeg|gif|heic|heif|svg\+xml|tiff|webp)|application\/(pdf|illustrator))/';
}
public function getCroppedThumbnail(File $file, int $maxX, int $maxY, bool $crop): ?IImage {
@ -81,33 +81,60 @@ class Imaginary extends ProviderV2 {
$httpClient = $this->service->newClient();
$convert = false;
switch ($file->getMimeType()) {
case 'image/gif':
case 'image/png':
$mimeType = 'png';
break;
case 'image/svg+xml':
case 'application/pdf':
case 'application/illustrator':
$convert = true;
break;
default:
$mimeType = 'jpeg';
}
$quality = $this->config->getAppValue('preview', 'jpeg_quality', '80');
$operations = [
[
'operation' => 'autorotate',
],
[
'operation' => ($crop ? 'smartcrop' : 'fit'),
'params' => [
'width' => $maxX,
'height' => $maxY,
'stripmeta' => 'true',
'type' => $mimeType,
'norotation' => 'true',
'quality' => $quality,
if ($convert) {
$operations = [
[
'operation' => 'convert',
'params' => [
'type' => 'png',
]
],
[
'operation' => ($crop ? 'smartcrop' : 'fit'),
'params' => [
'width' => $maxX,
'height' => $maxY,
'type' => 'png',
'norotation' => 'true',
]
]
]
];
];
} else {
$quality = $this->config->getAppValue('preview', 'jpeg_quality', '80');
$operations = [
[
'operation' => 'autorotate',
],
[
'operation' => ($crop ? 'smartcrop' : 'fit'),
'params' => [
'width' => $maxX,
'height' => $maxY,
'stripmeta' => 'true',
'type' => $mimeType,
'norotation' => 'true',
'quality' => $quality,
]
]
];
}
try {
$response = $httpClient->post(

Loading…
Cancel
Save