UNPKG

815 BJavaScriptView Raw
1'use strict';
2
3
4var ParserStream = require('../common').ParserStream;
5var str2arr = require('../common').str2arr;
6var sliceEq = require('../common').sliceEq;
7
8
9var SIG_8BPS = str2arr('8BPS\x00\x01');
10
11
12module.exports = function () {
13 var parser = new ParserStream();
14
15 parser._bytes(6, function (data) {
16 // signature + version
17 if (!sliceEq(data, 0, SIG_8BPS)) {
18 parser._skipBytes(Infinity);
19 parser.push(null);
20 return;
21 }
22
23 parser._bytes(16, function (data) {
24 parser._skipBytes(Infinity);
25
26 parser.push({
27 width: data.readUInt32BE(12),
28 height: data.readUInt32BE(8),
29 type: 'psd',
30 mime: 'image/vnd.adobe.photoshop',
31 wUnits: 'px',
32 hUnits: 'px'
33 });
34
35 parser.push(null);
36 });
37 });
38
39 return parser;
40};