1 | 'use strict';
|
2 |
|
3 |
|
4 |
|
5 | var str2arr = require('../common').str2arr;
|
6 | var sliceEq = require('../common').sliceEq;
|
7 | var readUInt32BE = require('../common').readUInt32BE;
|
8 |
|
9 |
|
10 | var SIG_PNG = str2arr('\x89PNG\r\n\x1a\n');
|
11 | var SIG_IHDR = str2arr('IHDR');
|
12 |
|
13 |
|
14 | module.exports = function (data) {
|
15 | if (data.length < 24) return;
|
16 |
|
17 |
|
18 | if (!sliceEq(data, 0, SIG_PNG)) return;
|
19 |
|
20 |
|
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 | };
|