| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- 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
- */
- module.exports = 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;
- };
|