Skip to content

Instantly share code, notes, and snippets.

@ryanhanwu
Last active August 29, 2015 14:18
Show Gist options
  • Save ryanhanwu/0321cb39f97675b106f8 to your computer and use it in GitHub Desktop.
Save ryanhanwu/0321cb39f97675b106f8 to your computer and use it in GitHub Desktop.
Convert @6x to @4x, @3x, and @2x (xhdpi to hdpi, mdpi, and ldpi) - For Android assets/resource
String.prototype.endsWith = function(suffix) {
return this.indexOf(suffix, this.length - suffix.length) !== -1;
};
var gm = require('gm');
var fs = require('fs');
var path = require('path');
function getFiles(dir, files_) {
files_ = files_ || [];
var files = fs.readdirSync(dir);
for (var i in files) {
var name = dir + '/' + files[i];
if (name.endsWith("@6x.png"))
files_.push(name);
}
return files_;
}
var resize = function(fileName) {
console.dir('--' + fileName);
var name4x = fileName.replace("6x", "4x");
var name3x = fileName.replace("6x", "3x");
var name2x = fileName.replace("6x", "2x");
gm(fileName)
.resize("66.666666667%")
.write(name4x, function(err) {
if (err) return console.dir(err);
console.log('Done - ' + name4x);
});
gm(fileName)
.resize("50%")
.write(name3x, function(err) {
if (err) return console.dir(err);
console.log('Done - ' + name3x);
});
gm(fileName)
.resize("33.33333333%")
.write(name2x, function(err) {
if (err) return console.dir(err);
console.log('Done - ' + name2x);
});
};
var folderPath = path.join(__dirname);
var allfiles = getFiles(folderPath);
for (var i = 0; i < allfiles.length; i++) {
resize(allfiles[i]);
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment