• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

nodeca / probe-image-size / 25260964598

02 May 2026 08:19PM UTC coverage: 99.438% (-0.3%) from 99.712%
25260964598

push

github

puzrin
Improve BMP handling

691 of 696 branches covered (99.28%)

17 of 20 new or added lines in 2 files covered. (85.0%)

1 existing line in 1 file now uncovered.

1061 of 1067 relevant lines covered (99.44%)

996.13 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

91.3
/lib/parse_stream/bmp.js
1
'use strict';
2

3

4
var ParserStream = require('../common').ParserStream;
3✔
5
var str2arr      = require('../common').str2arr;
3✔
6
var sliceEq      = require('../common').sliceEq;
3✔
7

8

9
var SIG_BM = str2arr('BM');
3✔
10

11

12
module.exports = function () {
3✔
13
  var parser = new ParserStream();
336✔
14

15
  parser._bytes(26, function (data) {
336✔
16
    parser._skipBytes(Infinity);
282✔
17

18
    if (!sliceEq(data, 0, SIG_BM)) {
282✔
19
      parser.push(null);
276✔
20
      return;
276✔
21
    }
22

23
    var w, h;
24
    var headerSize = data.readUInt32LE(14);
6✔
25

26
    if (headerSize === 12) {
6✔
27
      // BMP v2 header
28
      w = data.readInt16LE(18);
3✔
29
      h = data.readInt16LE(20);
3✔
30
    } else if (headerSize > 12) {
3!
31
      // BMP v3+ header
32
      w = data.readInt32LE(18);
3✔
33
      h = data.readInt32LE(22);
3✔
34
    } else {
NEW
35
      parser.push(null);
×
NEW
36
      return;
×
37
    }
38

39
    parser.push({
6✔
40
      width:  w,
41
      // Height can be negative to indicate a top-down bitmap
42
      height: Math.abs(h),
43
      type: 'bmp',
44
      mime: 'image/bmp',
45
      wUnits: 'px',
46
      hUnits: 'px'
47
    });
48

49
    parser.push(null);
6✔
50
  });
51

52
  return parser;
336✔
53
};
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc