123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- 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();
|