fix: changes to thumb resizing logic

- Resized thumb no longer skews aspect ratio
- Thumbs resized down to maximum thumb size by WIDTH only
- image.checkDimensions() now returns dimensions
v1.18.x
Julian Lam 4 years ago
parent 37c367d6ff
commit 67cf5e83b7

@ -120,12 +120,14 @@ uploadsController.uploadThumb = async function (req, res) {
throw new Error('[[error:invalid-file]]'); throw new Error('[[error:invalid-file]]');
} }
await image.isFileTypeAllowed(uploadedFile.path); await image.isFileTypeAllowed(uploadedFile.path);
await image.checkDimensions(uploadedFile.path); const dimensions = await image.checkDimensions(uploadedFile.path);
await image.resizeImage({
path: uploadedFile.path, if (dimensions.width > parseInt(meta.config.topicThumbSize, 10)) {
width: meta.config.topicThumbSize, await image.resizeImage({
height: meta.config.topicThumbSize, path: uploadedFile.path,
}); width: meta.config.topicThumbSize,
});
}
if (plugins.hooks.hasListeners('filter:uploadImage')) { if (plugins.hooks.hasListeners('filter:uploadImage')) {
return await plugins.hooks.fire('filter:uploadImage', { return await plugins.hooks.fire('filter:uploadImage', {
image: uploadedFile, image: uploadedFile,

@ -105,6 +105,8 @@ image.checkDimensions = async function (path) {
if (result.width > meta.config.rejectImageWidth || result.height > meta.config.rejectImageHeight) { if (result.width > meta.config.rejectImageWidth || result.height > meta.config.rejectImageHeight) {
throw new Error('[[error:invalid-image-dimensions]]'); throw new Error('[[error:invalid-image-dimensions]]');
} }
return result;
}; };
image.convertImageToBase64 = async function (path) { image.convertImageToBase64 = async function (path) {

Loading…
Cancel
Save