Rework image conversion logic

...and allow more image formats
This commit is contained in:
Anton Thomasson 2020-09-10 20:01:21 +02:00
parent aad58cf4c6
commit cb0c0e0e3d
2 changed files with 13 additions and 6 deletions

View file

@ -22,15 +22,15 @@ function supported_formats(printer, ConvertChecker, considerAdditionalFormats)
supported.push("Postscript"); supported.push("Postscript");
} }
if (raster || has(formats, "image/jpeg")) if (raster || has(formats, "image/jpeg") || has(formats, "image/png") || has(formats, "image/gif"))
{ {
mimetypes.push("image/jpeg"); mimetypes.push("image/jpeg");
supported.push("JPEG"); supported.push("JPEG");
}
if(raster || has(formats, "image/png"))
{
mimetypes.push("image/png"); mimetypes.push("image/png");
supported.push("PNG"); supported.push("PNG");
mimetypes.push("image/tiff");
mimetypes.push("image/gif");
} }
return {supported: supported.join(" "), mimetypes: mimetypes}; return {supported: supported.join(" "), mimetypes: mimetypes};
@ -242,7 +242,7 @@ function limitChoices(name, choices, mimeType, ConvertChecker)
} }
} }
else if(mimeType == "image/jpeg" || mimeType == "image/png") else if(mimeType.indexOf("image") != -1)
{ {
return choices.filter(canConvertImageTo); return choices.filter(canConvertImageTo);
} }

View file

@ -294,7 +294,14 @@ QString targetFormatIfAuto(QString documentFormat, QString mimeType, QJsonArray
} }
else if (mimeType.contains("image")) else if (mimeType.contains("image"))
{ {
return firstMatch(supportedMimeTypes, {"image/png", "image/gif", "image/jpeg", "image/pwg-raster", "image/urf"}); QStringList ImageFormatPrioList {"image/png", "image/gif", "image/pwg-raster", "image/urf", "image/jpeg"};
if(mimeType == "image/jpeg")
{
// Prioritize transferring JPEG as JPEG, as it will not be transcoded
// Normally, it is the last choice (as the others are lossless)
ImageFormatPrioList.prepend(mimeType);
}
return firstMatch(supportedMimeTypes, ImageFormatPrioList);
} }
return documentFormat; return documentFormat;
} }