@@ -0,0 +1,51 @@
|
||||
var debug = require('debug')('ylt:imageDimensions');
|
||||
var Q = require('q');
|
||||
var sizeOf = require('image-size');
|
||||
|
||||
var ImageDimensions = function() {
|
||||
|
||||
function getDimensions(entry) {
|
||||
var deferred = Q.defer();
|
||||
|
||||
if (!entry.weightCheck || !entry.weightCheck.bodyBuffer) {
|
||||
// No valid file available
|
||||
deferred.resolve(entry);
|
||||
return deferred.promise;
|
||||
}
|
||||
|
||||
var fileSize = entry.weightCheck.uncompressedSize;
|
||||
|
||||
if (isJPEG(entry) || isPNG(entry)) {
|
||||
try {
|
||||
var dimensions = sizeOf(entry.weightCheck.bodyBuffer);
|
||||
debug('Image dimensions of %s: %sx%s', entry.url, dimensions.width, dimensions.height);
|
||||
|
||||
entry.imageDimensions = {
|
||||
width: dimensions.width,
|
||||
height: dimensions.height
|
||||
};
|
||||
} catch(err) {
|
||||
debug('Error while checking image dimensions:');
|
||||
debug(err);
|
||||
}
|
||||
}
|
||||
|
||||
deferred.resolve(entry);
|
||||
|
||||
return deferred.promise;
|
||||
}
|
||||
|
||||
function isJPEG(entry) {
|
||||
return entry.isImage && entry.contentType === 'image/jpeg';
|
||||
}
|
||||
|
||||
function isPNG(entry) {
|
||||
return entry.isImage && entry.contentType === 'image/png';
|
||||
}
|
||||
|
||||
return {
|
||||
getDimensions: getDimensions
|
||||
};
|
||||
};
|
||||
|
||||
module.exports = new ImageDimensions();
|
||||
Reference in New Issue
Block a user