123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- var utils = require('../utils')
- , nodes = require('../nodes')
- , Image = require('./image');
- /**
- * Return the width and height of the given `img` path.
- *
- * Examples:
- *
- * image-size('foo.png')
- * // => 200px 100px
- *
- * image-size('foo.png')[0]
- * // => 200px
- *
- * image-size('foo.png')[1]
- * // => 100px
- *
- * Can be used to test if the image exists,
- * using an optional argument set to `true`
- * (without this argument this function throws error
- * if there is no such image).
- *
- * Example:
- *
- * image-size('nosuchimage.png', true)[0]
- * // => 0
- *
- * @param {String} img
- * @param {Boolean} ignoreErr
- * @return {Expression}
- * @api public
- */
- function imageSize(img, ignoreErr) {
- utils.assertType(img, 'string', 'img');
- try {
- var img = new Image(this, img.string);
- } catch (err) {
- if (ignoreErr) {
- return [new nodes.Unit(0), new nodes.Unit(0)];
- } else {
- throw err;
- }
- }
- // Read size
- img.open();
- var size = img.size();
- img.close();
- // Return (w h)
- var expr = [];
- expr.push(new nodes.Unit(size[0], 'px'));
- expr.push(new nodes.Unit(size[1], 'px'));
- return expr;
- };
- imageSize.params = ['img', 'ignoreErr'];
- module.exports = imageSize;
|