|
@@ -24,6 +24,18 @@ function scale_image(imageData, context, d_x, d_y, scale) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+// makes images less worse by using binary transparency
|
|
|
+function enhance(context) {
|
|
|
+ var imagedata = context.getImageData(0, 0, context.canvas.width, context.canvas.height);
|
|
|
+ var data = imagedata.data;
|
|
|
+ // data is [r,g,b,a, r,g,b,a, *]
|
|
|
+ for (var i = 3; i < data.length; i += 4) {
|
|
|
+ // round to 0 or 255
|
|
|
+ data[i] = Math.round(data[i] / 255) * 255;
|
|
|
+ }
|
|
|
+ context.putImageData(imagedata, 0, 0);
|
|
|
+}
|
|
|
+
|
|
|
// draws the helmet on to the +skin_canvas+
|
|
|
// using the skin from the +model_ctx+ at the +scale+
|
|
|
exp.draw_helmet = function(skin_canvas, model_ctx, scale) {
|
|
@@ -155,7 +167,7 @@ exp.draw_model = function(rid, img, scale, helm, body, callback) {
|
|
|
|
|
|
image.onload = function() {
|
|
|
var width = 64 * scale;
|
|
|
- var original_height = (image.height === 32 ? 32 : 64);
|
|
|
+ var original_height = image.height === 32 ? 32 : 64;
|
|
|
var height = original_height * scale;
|
|
|
var model_canvas = new Canvas(20 * scale, (body ? 44.8 : 17.6) * scale);
|
|
|
var skin_canvas = new Canvas(width, height);
|
|
@@ -173,7 +185,10 @@ exp.draw_model = function(rid, img, scale, helm, body, callback) {
|
|
|
exp.draw_helmet(skin_canvas, model_ctx, scale);
|
|
|
}
|
|
|
|
|
|
- model_canvas.toBuffer(function(err, buf){
|
|
|
+ // FIXME: This is a temporary fix for #32
|
|
|
+ enhance(model_ctx);
|
|
|
+
|
|
|
+ model_canvas.toBuffer(function(err, buf) {
|
|
|
if (err) {
|
|
|
logging.error(rid, "error creating buffer:", err);
|
|
|
}
|
|
@@ -187,7 +202,7 @@ exp.draw_model = function(rid, img, scale, helm, body, callback) {
|
|
|
// helper method to open a render from +renderpath+
|
|
|
// callback: error, image buffer
|
|
|
exp.open_render = function(rid, renderpath, callback) {
|
|
|
- fs.readFile(renderpath, function (err, buf) {
|
|
|
+ fs.readFile(renderpath, function(err, buf) {
|
|
|
if (err) {
|
|
|
logging.error(rid, "error while opening skin file:", err);
|
|
|
}
|