feat: add "keep original image after resize" option

closes #12946
This commit is contained in:
Barış Soner Uşaklı
2024-12-02 10:08:52 -05:00
parent abecd61fd5
commit 9a635870b4
7 changed files with 44 additions and 3 deletions

View File

@@ -110,12 +110,16 @@ async function resizeImage(fileObj) {
await image.resizeImage({
path: fileObj.path,
target: file.appendToFileName(fileObj.path, '-resized'),
target: meta.config.resizeImageKeepOriginal ?
file.appendToFileName(fileObj.path, '-resized') :
fileObj.path,
width: meta.config.resizeImageWidth,
quality: meta.config.resizeImageQuality,
});
// Return the resized version to the composer/postData
fileObj.url = file.appendToFileName(fileObj.url, '-resized');
if (meta.config.resizeImageKeepOriginal) {
fileObj.url = file.appendToFileName(fileObj.url, '-resized');
}
return fileObj;
}

View File

@@ -122,7 +122,6 @@ image.stripEXIF = async function (path) {
};
image.checkDimensions = async function (path) {
const meta = require('./meta');
const result = await image.size(path);
if (result.width > meta.config.rejectImageWidth || result.height > meta.config.rejectImageHeight) {

View File

@@ -0,0 +1,13 @@
/* eslint-disable no-await-in-loop */
'use strict';
const db = require('../../database');
module.exports = {
name: 'Add setting for keeping original image after resize',
timestamp: Date.UTC(2024, 11, 2),
method: async function () {
await db.setObjectField('config', 'resizeImageKeepOriginal', 1);
},
};

View File

@@ -46,6 +46,11 @@
</div>
</div>
<div class="form-check form-switch mb-3">
<input class="form-check-input" type="checkbox" id="resizeImageKeepOriginal" data-field="resizeImageKeepOriginal">
<label for="resizeImageKeepOriginal" class="form-check-label">[[admin/settings/uploads:resize-image-keep-original]]</label>
</div>
<div class="mb-3">
<label class="form-label" for="resizeImageQuality">[[admin/settings/uploads:resize-image-quality]]</label>
<input id="resizeImageQuality" type="text" class="form-control" value="60" data-field="resizeImageQuality" placeholder="60">