| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 | 
							- var logging = require("./logging");
 
- var lwip = require("lwip");
 
- var fs = require("fs");
 
- var exp = {};
 
- // extracts the face from an image +buffer+
 
- // result is saved to a file called +outname+
 
- // +callback+ contains error
 
- exp.extract_face = function(buffer, outname, callback) {
 
-   lwip.open(buffer, "png", function(err, image) {
 
-     if (err) {
 
-       callback(err);
 
-     } else {
 
-       image.batch()
 
-       .crop(8, 8, 15, 15) // face
 
-       .writeFile(outname, function(err) {
 
-         if (err) {
 
-           callback(err);
 
-         } else {
 
-           callback(null);
 
-         }
 
-       });
 
-     }
 
-   });
 
- };
 
- // extracts the helm from an image +buffer+ and lays it over a +facefile+
 
- // +facefile+ is the filename of an image produced by extract_face
 
- // result is saved to a file called +outname+
 
- // +callback+ contains error
 
- exp.extract_helm = function(rid, facefile, buffer, outname, callback) {
 
-   lwip.open(buffer, "png", function(err, skin_img) {
 
-     if (err) {
 
-       callback(err);
 
-     } else {
 
-       lwip.open(facefile, function(err, face_img) {
 
-         if (err) {
 
-           callback(err);
 
-         } else {
 
-           face_img.toBuffer("png", { compression: "none" }, function(err, face_buffer) {
 
-             skin_img.crop(40, 8, 47, 15, function(err, helm_img) {
 
-               if (err) {
 
-                 callback(err);
 
-               } else {
 
-                 face_img.paste(0, 0, helm_img, function(err, face_helm_img) {
 
-                   if (err) {
 
-                     callback(err);
 
-                   } else {
 
-                     face_helm_img.toBuffer("png", {compression: "none"}, function(err, face_helm_buffer) {
 
-                       if (face_helm_buffer.toString() !== face_buffer.toString()) {
 
-                         face_helm_img.writeFile(outname, function(err) {
 
-                           callback(err);
 
-                         });
 
-                       } else {
 
-                         logging.log(rid + "helm image is the same as face image, not storing!");
 
-                         callback(null);
 
-                       }
 
-                     });
 
-                   }
 
-                 });
 
-               }
 
-             });
 
-           });
 
-         }
 
-       });
 
-     }
 
-   });
 
- };
 
- // resizes the image file +inname+ to +size+ by +size+ pixels
 
- // +callback+ contains error, image buffer
 
- exp.resize_img = function(inname, size, callback) {
 
-   lwip.open(inname, function(err, image) {
 
-     if (err) {
 
-       callback(err, null);
 
-     } else {
 
-       image.batch()
 
-       .resize(size, size, "nearest-neighbor") // nearest-neighbor doesn't blur
 
-       .toBuffer("png", function(err, buffer) {
 
-         callback(null, buffer);
 
-       });
 
-     }
 
-   });
 
- };
 
- // returns "alex" or "steve" calculated by the +userId+
 
- exp.default_skin = function(userId) {
 
-   if (Number("0x" + userId[31]) % 2 === 0) {
 
-     return "alex";
 
-   } else {
 
-     return "steve";
 
-   }
 
- };
 
- // helper method for opening a skin file from +skinpath+
 
- // callback contains error, image buffer
 
- exp.open_skin = function(rid, skinpath, callback) {
 
-   fs.readFile(skinpath, function(err, buf) {
 
-     if (err) {
 
-       logging.error(rid + "error while opening skin file: " + err);
 
-       callback(err, null);
 
-     } else {
 
-       callback(null, buf);
 
-     }
 
-   });
 
- };
 
- exp.save_image = function(buffer, outpath, callback) {
 
-   lwip.open(buffer, "png", function(err, image) {
 
-     if (err) {
 
-       callback(err);
 
-     } else {
 
-       image.batch()
 
-       .writeFile(outpath, function(err) {
 
-         if (err) {
 
-           callback(err);
 
-         } else {
 
-           callback(null);
 
-         }
 
-       });
 
-     }
 
-   });
 
- };
 
- module.exports = exp;
 
 
  |