smartfacecloud-emulator-dispatcher
Advanced tools
Comparing version
{ | ||
"name": "smartfacecloud-emulator-dispatcher", | ||
"version": "6.8.10", | ||
"version": "6.8.11", | ||
"description": "Handles Emulator Dispatcher Part of SmartfaceCloud", | ||
@@ -49,2 +49,3 @@ "main": "src/index.js", | ||
"express": "^4.14.0", | ||
"gif-frames": "^1.0.1", | ||
"jimp": "^0.4.0", | ||
@@ -51,0 +52,0 @@ "js-gc": "0.0.3", |
@@ -6,2 +6,3 @@ const Workspace = require('smartfacecloud-emulator-index'); | ||
const Jimp = require('jimp'); | ||
const gifFrames = require('gif-frames'); | ||
const LogToConsole = require('../../common/LogToConsole'); | ||
@@ -45,17 +46,10 @@ const CONSTANTS = require("../../constants"); | ||
if (path.extname(imageName) === ".gif") { | ||
var img = fs.readFileSync(path.join(wsPath,"assets",imageName)); | ||
res.writeHead(200, { 'Content-Type': 'image/gif' }); | ||
return res.end(img, 'binary'); | ||
} | ||
if (imageName !== "*") { | ||
if (path.extname(imageName) === ".gif") | ||
serveGifImage(req.query, path.join(wsPath, "assets", imageName), res); | ||
else if (imageName !== "*") { | ||
ws.getImage(device, req.params.imageName, | ||
function indexResult(err, index) { | ||
if (err) { | ||
res.sendStatus(500); | ||
return log("**ERROR**", err); | ||
} | ||
if (err) | ||
return handleError(err, res); | ||
var found = !!(index && Object.keys(index) && Object.keys(index)[0]); | ||
if (found) { | ||
@@ -67,17 +61,10 @@ var filePath = Object.keys(index)[0]; | ||
Jimp.read(filePath, function(err, image) { | ||
if (err) { | ||
res.sendStatus(500); | ||
return log("**ERROR**", err); | ||
} | ||
if (err) | ||
return handleError(err, res); | ||
image.scale(densityRatio * zoomLevel /** fileInfo.scaleWith*/ , function(err, image) { | ||
if (err) { | ||
res.sendStatus(500); | ||
return log("**ERROR**", err); | ||
} | ||
if (err) | ||
return handleError(err, res); | ||
image.getBuffer(Jimp.MIME_PNG, function(err, buffer) { | ||
if (err) { | ||
res.sendStatus(500); | ||
return log("**ERROR**", err); | ||
} | ||
if (err) | ||
return handleError(err, res); | ||
res.type(imageFormat). | ||
@@ -105,6 +92,4 @@ set({ | ||
function indexResultAll(err, index) { | ||
if (err) { | ||
res.sendStatus(500); | ||
return log("**ERROR**", err); | ||
} | ||
if (err) | ||
return handleError(err, res); | ||
var result = {}; | ||
@@ -122,2 +107,28 @@ for (var p in index) { | ||
}); | ||
function serveGifImage(query, filePath, response) { | ||
if (query.frame !== undefined) { | ||
gifFrames({ url: filePath, frames: query.frame, utputType: 'png' }).then(function(frameData) { | ||
//response.writeHead(200, { 'Content-Type': 'image/png' }); | ||
var readable = frameData[0].getImage(); | ||
response.contentType('image/png'); | ||
readable.pipe(response); | ||
}); | ||
} | ||
else { | ||
fs.readFile(filePath, (err, buffer) => { | ||
if (err) | ||
return handleError(err, response); | ||
response.writeHead(200, { 'Content-Type': 'image/gif' }); | ||
response.end(buffer, 'binary'); | ||
}); | ||
} | ||
} | ||
function handleError(err, response) { | ||
response.sendStatus(500); | ||
response.end(err.stack || err); | ||
log("**ERROR**", err); | ||
} | ||
}; |
560521
0.08%2565
0.43%22
4.76%+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added