Import Ruty
This commit is contained in:
+41
@@ -0,0 +1,41 @@
|
||||
var Element = require('./element'),
|
||||
fs = require('fs'),
|
||||
imageinfo = require('imageinfo');
|
||||
|
||||
module.exports = ImageElement = function(path){
|
||||
Element.apply(this, arguments);
|
||||
this.path=path;
|
||||
this.dpi=300;
|
||||
};
|
||||
|
||||
ImageElement.subclass(Element);
|
||||
|
||||
ImageElement.prototype.getRTFCode = function(colorTable, fontTable, callback){
|
||||
var self = this;
|
||||
|
||||
//read image file
|
||||
return fs.readFile(this.path, function(err, buffer){
|
||||
|
||||
if(err) throw err;
|
||||
|
||||
//get image information and calculate twips based on DPI
|
||||
var info = imageinfo(buffer);
|
||||
var twipRatio = ((72/self.dpi) * 20);
|
||||
var twipWidth = Math.round(info.width * twipRatio),
|
||||
twipHeight = Math.round(info.height * twipRatio);
|
||||
|
||||
//output image information
|
||||
var output = "{\\pict\\pngblip\\picw" + info.width + "\\pich" + info.height +
|
||||
"\\picwgoal" + twipWidth + "\\pichgoal" + twipHeight + " ";
|
||||
|
||||
//output buffer to base16 (hex) and ensure prefixed 0 if single digit
|
||||
var bufSize = buffer.length;
|
||||
for(var i = 0; i < bufSize; i++){
|
||||
var hex = buffer[i].toString(16);
|
||||
output += (hex.length === 2) ? hex : "0" + hex;
|
||||
}
|
||||
|
||||
output += "}";
|
||||
return callback(null, output);
|
||||
});
|
||||
};
|
||||
Reference in New Issue
Block a user