Skip to content

Instantly share code, notes, and snippets.

@JulienHe
Last active August 16, 2022 17:00
Show Gist options
  • Save JulienHe/dcf6a98ec27a82b8a9eb131fff202143 to your computer and use it in GitHub Desktop.
Save JulienHe/dcf6a98ec27a82b8a9eb131fff202143 to your computer and use it in GitHub Desktop.
Resize / Rename
const rootImageFolder = './images/';
function cleanNaming(directory) {
return directory.replace(/\d{1,}\s/g, '').replaceAll(/-\s/g, '').replaceAll(/\s/g, '-').toLowerCase();
}
function renameImage(source, exportName) {
fs.rename(source, exportName, function(err) {
if ( err ) console.log('ERROR: ' + err);
log(clc.blue("Rename cover"))
});
}
function resizePicture(source, exportName, width, height, type='') {
source
.resize(width, height, type)
.autoOrient()
.write(exportName, function (err) {
if(err) console.log(err);
log(clc.blue("Resize and rename"))
log(clc.green(exportName))
})
}
app.get("/", (req, res) => {
const directories = getDirectories(rootImageFolder);
directories.forEach((directory, index) => {
const currentImageDirectory = `${rootImageFolder}${directory}`;
fs.readdir(currentImageDirectory, (err, files) => {
const folderName = cleanNaming(directory);
files.forEach((file, index) => {
// Export name + Export name square
const exportName = `${currentImageDirectory}/${folderName}-${index}.jpg`
const exportCover = `${currentImageDirectory}/cover-${folderName}.jpg`
const currentFileName = `${currentImageDirectory}/${file}`
// Resize or change name
gm(currentFileName)
.size(function (err, size) {
if (err){
return false;
}
const width = size.width;
if (width > 2000) {
resizePicture(this, exportName, 40, 40, '%');
} else {
renameImage(currentFileName, exportCover)
}
})
});
});
});
res.send('Finished!');
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment