|
|
|
|
@ -82,8 +82,14 @@ class Imaginary extends ProviderV2 {
|
|
|
|
|
$httpClient = $this->service->newClient();
|
|
|
|
|
|
|
|
|
|
$convert = false;
|
|
|
|
|
$autorotate = true;
|
|
|
|
|
|
|
|
|
|
switch ($file->getMimeType()) {
|
|
|
|
|
case 'image/heic':
|
|
|
|
|
// Autorotate seems to be broken for Heic so disable for that
|
|
|
|
|
$autorotate = false;
|
|
|
|
|
$mimeType = 'jpeg';
|
|
|
|
|
break;
|
|
|
|
|
case 'image/gif':
|
|
|
|
|
case 'image/png':
|
|
|
|
|
$mimeType = 'png';
|
|
|
|
|
@ -92,50 +98,43 @@ class Imaginary extends ProviderV2 {
|
|
|
|
|
case 'application/pdf':
|
|
|
|
|
case 'application/illustrator':
|
|
|
|
|
$convert = true;
|
|
|
|
|
// Converted files do not need to be autorotated
|
|
|
|
|
$autorotate = false;
|
|
|
|
|
$mimeType = 'png';
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
$mimeType = 'jpeg';
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$operations = [];
|
|
|
|
|
|
|
|
|
|
if ($convert) {
|
|
|
|
|
$operations = [
|
|
|
|
|
[
|
|
|
|
|
'operation' => 'convert',
|
|
|
|
|
'params' => [
|
|
|
|
|
'type' => 'png',
|
|
|
|
|
]
|
|
|
|
|
],
|
|
|
|
|
[
|
|
|
|
|
'operation' => ($crop ? 'smartcrop' : 'fit'),
|
|
|
|
|
'params' => [
|
|
|
|
|
'width' => $maxX,
|
|
|
|
|
'height' => $maxY,
|
|
|
|
|
'type' => 'png',
|
|
|
|
|
'norotation' => 'true',
|
|
|
|
|
]
|
|
|
|
|
$operations[] = [
|
|
|
|
|
'operation' => 'convert',
|
|
|
|
|
'params' => [
|
|
|
|
|
'type' => $mimeType,
|
|
|
|
|
]
|
|
|
|
|
];
|
|
|
|
|
} 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,
|
|
|
|
|
]
|
|
|
|
|
]
|
|
|
|
|
} elseif ($autorotate) {
|
|
|
|
|
$operations[] = [
|
|
|
|
|
'operation' => 'autorotate',
|
|
|
|
|
];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$quality = $this->config->getAppValue('preview', 'jpeg_quality', '80');
|
|
|
|
|
|
|
|
|
|
$operations[] = [
|
|
|
|
|
'operation' => ($crop ? 'smartcrop' : 'fit'),
|
|
|
|
|
'params' => [
|
|
|
|
|
'width' => $maxX,
|
|
|
|
|
'height' => $maxY,
|
|
|
|
|
'stripmeta' => 'true',
|
|
|
|
|
'type' => $mimeType,
|
|
|
|
|
'norotation' => 'true',
|
|
|
|
|
'quality' => $quality,
|
|
|
|
|
]
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
$response = $httpClient->post(
|
|
|
|
|
$imaginaryUrl . '/pipeline', [
|
|
|
|
|
|