UNPKG

671 BJavaScriptView Raw
1'use strict';
2
3/* eslint-disable consistent-return */
4
5var str2arr = require('../common').str2arr;
6var sliceEq = require('../common').sliceEq;
7var readUInt32BE = require('../common').readUInt32BE;
8
9
10var SIG_PNG = str2arr('\x89PNG\r\n\x1a\n');
11var SIG_IHDR = str2arr('IHDR');
12
13
14module.exports = function (data) {
15 if (data.length < 24) return;
16
17 // check PNG signature
18 if (!sliceEq(data, 0, SIG_PNG)) return;
19
20 // check that first chunk is IHDR
21 if (!sliceEq(data, 12, SIG_IHDR)) return;
22
23 return {
24 width: readUInt32BE(data, 16),
25 height: readUInt32BE(data, 20),
26 type: 'png',
27 mime: 'image/png',
28 wUnits: 'px',
29 hUnits: 'px'
30 };
31};