1
0
Fork 0
mirror of https://github.com/plankanban/planka.git synced 2025-07-19 05:09:43 +02:00

feat: Preserve original format of images, change interpolation kernel

Closes #349
This commit is contained in:
Maksim Eltyshev 2022-12-24 00:47:59 +01:00
parent 73abed65b5
commit 05b57142f9
17 changed files with 212 additions and 103 deletions

View file

@ -26,9 +26,11 @@ module.exports = {
fs.mkdirSync(rootPath);
await moveFile(inputs.file.fd, filePath);
const image = sharp(filePath);
let metadata;
const image = sharp(filePath, {
animated: true,
});
let metadata;
try {
metadata = await image.metadata();
} catch (error) {} // eslint-disable-line no-empty
@ -44,25 +46,19 @@ module.exports = {
const thumbnailsPath = path.join(rootPath, 'thumbnails');
fs.mkdirSync(thumbnailsPath);
const extension = metadata.format === 'jpeg' ? 'jpg' : metadata.format;
try {
await image
.resize(
metadata.height > metadata.width
? {
width: 256,
height: 320,
}
: {
width: 256,
},
)
.jpeg({
quality: 100,
chromaSubsampling: '4:4:4',
.resize(256, metadata.height > metadata.width ? 320 : undefined, {
kernel: sharp.kernel.nearest,
})
.toFile(path.join(thumbnailsPath, 'cover-256.jpg'));
.toFile(path.join(thumbnailsPath, `cover-256.${extension}`));
fileData.image = _.pick(metadata, ['width', 'height']);
fileData.image = {
..._.pick(metadata, ['width', 'height']),
thumbnailsExtension: extension,
};
} catch (error1) {
try {
rimraf.sync(thumbnailsPath);