Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit d45bd62

Browse files
committed
Merge branch 'commonsmachinery-master'
2 parents 165cc2c + 7d8c412 commit d45bd62

File tree

4 files changed

+3227
-10
lines changed

4 files changed

+3227
-10
lines changed

lib/decoder.js

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -964,16 +964,14 @@ function decode(jpegData) {
964964
var arr = new Uint8Array(jpegData);
965965
var decoder = new JpegImage();
966966
decoder.parse(arr);
967-
var data = decoder.getData(decoder.width, decoder.height);
968-
var buf = new Buffer(decoder.width * decoder.height * 4);
969-
var n = 0;
970-
for (var i = 0; i < buf.length; i++) {
971-
buf[i + (i/3 | 0)] = data[n++];
972-
if (i % 4 == 3) buf[i] = 255;
973-
}
974-
return {
975-
data: buf,
967+
968+
var image = {
976969
width: decoder.width,
977-
height: decoder.height
970+
height: decoder.height,
971+
data: new Buffer(decoder.width * decoder.height * 4)
978972
};
973+
974+
decoder.copyToImageData(image);
975+
976+
return image;
979977
}

test/fixtures/apsara.jpg

48.2 KB
Loading

test/fixtures/apsara.rgba

Lines changed: 3208 additions & 0 deletions
Large diffs are not rendered by default.

test/index.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,17 @@ it('should be able to decode a JPEG with RST intervals', function(t) {
3838
t.end();
3939
});
4040

41+
it('should be able to decode a grayscale JPEG', function(t) {
42+
var jpegData = fixture('apsara.jpg');
43+
var rawImageData = jpeg.decode(jpegData);
44+
t.equal(rawImageData.width, 580);
45+
t.equal(rawImageData.height, 599);
46+
var expected = fixture('apsara.rgba');
47+
t.deepEqual(rawImageData.data, expected);
48+
t.end();
49+
});
50+
51+
4152
it('should be able to encode a JPEG', function (t) {
4253
var frameData = fixture('grumpycat.rgba');
4354
var rawImageData = {

0 commit comments

Comments
 (0)