Skip to content

Instantly share code, notes, and snippets.

@dariusc93
Created November 26, 2013 10:12
Show Gist options
  • Save dariusc93/7656098 to your computer and use it in GitHub Desktop.
Save dariusc93/7656098 to your computer and use it in GitHub Desktop.
app.get('/img/:width/:height/:name', function(req,res){
var name = req.params.name;
var sub = name.split('.'),fname = sub[sub.length-2],ext = sub[sub.length-1];
var d1 = ['/path/to/',fname,'.',ext];
fs.exists(d1.join(""), function(exist){
if(exist){
var img = new image;
console.log(d1.join(''));
img.onerror = function(err){
throw err;
};
img.onload = function(){
console.log('processing image');
var canvas = new Canvas(req.params.width,req.params.height);
var ctx = canvas.getContext('2d');
ctx.imageSmoothingEnabled = true;
ctx.drawImage(img,0,0,req.params.width,req.params.height);
canvas.toBuffer(function(err,buf){
switch(ext){
case 'jpg':
res.setHeader('Content-type','image/jpeg');
break;
case 'png':
res.setHeader('Content-type','image/png');
break;
case 'gif':
res.setHeader('Content-type','image/gif');
break;
default:
break;
}
if(err){
console.log('Error serving image '+d1.join(""));
console.log('Error: '+err);
res.status(500);
res.end();
}else{
res.status(200);
res.end(buf,'binary');
}
});
};
img.src = d1.join("");
}else{
res.status(404);
res.end();
}
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment