From dcb6af5768090591ebb061ee19049109e2a96758 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?=
Date: Mon, 19 Mar 2018 16:24:15 -0400
Subject: [PATCH] closes #6373
---
public/language/en-GB/admin/settings/uploads.json | 2 ++
src/controllers/uploads.js | 1 +
src/image.js | 7 +++++++
src/views/admin/settings/uploads.tpl | 8 ++++++++
4 files changed, 18 insertions(+)
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 @@
+
+