diff --git a/public/language/en-GB/admin/settings/uploads.json b/public/language/en-GB/admin/settings/uploads.json index a458870354..f08b6efedf 100644 --- a/public/language/en-GB/admin/settings/uploads.json +++ b/public/language/en-GB/admin/settings/uploads.json @@ -4,6 +4,8 @@ "private": "Make uploaded files private", "max-image-width": "Resize images down to specified width (in pixels)", "max-image-width-help": "(in pixels, default: 760 pixels, set to 0 to disable)", + "resize-image-quality": "Quality to use when resizing images", + "resize-image-quality-help": "Use a lower quality setting to reduce the file size of resized images.", "max-file-size": "Maximum File Size (in KiB)", "max-file-size-help": "(in kibibytes, default: 2048 KiB)", "allow-topic-thumbnails": "Allow users to upload topic thumbnails", diff --git a/src/controllers/uploads.js b/src/controllers/uploads.js index 4417513612..3d225c22fe 100644 --- a/src/controllers/uploads.js +++ b/src/controllers/uploads.js @@ -118,6 +118,7 @@ function resizeImage(fileObj, callback) { target: path.join(dirname, basename + '-resized' + extname), extension: extname, width: parseInt(meta.config.maximumImageWidth, 10) || 760, + quality: parseInt(meta.config.resizeImageQuality, 10) || 60, }, next); }, function (next) { diff --git a/src/image.js b/src/image.js index f2afb21003..0269a4c226 100644 --- a/src/image.js +++ b/src/image.js @@ -20,6 +20,7 @@ image.resizeImage = function (data, callback) { extension: data.extension, width: data.width, height: data.height, + quality: data.quality, }, function (err) { callback(err); }); @@ -73,6 +74,12 @@ image.resizeImage = function (data, callback) { next(null, image); } }, + function (image, next) { + if (data.quality) { + image.quality(data.quality); + } + next(null, image); + }, function (image, next) { image.write(data.target || data.path, next); }, diff --git a/src/views/admin/settings/uploads.tpl b/src/views/admin/settings/uploads.tpl index 9ccb2c6c9b..e523c928c5 100644 --- a/src/views/admin/settings/uploads.tpl +++ b/src/views/admin/settings/uploads.tpl @@ -28,6 +28,14 @@
++ [[admin/settings/uploads:resize-image-quality-help]] +
+