Correctly extract component data from "Image and tile size" (SIZ) markers in JPEG 2000 images
This is something that I noticed while attempting to debug https://bugzilla.mozilla.org/show_bug.cgi?id=1374945. Just looking at the code, the `YRsiz` parameter seemed immediately wrong and the fact that every component used the *same* data also looked strange. Comparing with the specification, see https://www.itu.int/rec/dologin_pub.asp?lang=e&id=T-REC-T.800-200208-S!!PDF-E&type=items#page=37, confirmed that this is indeed incorrect. Note that I haven't got any example of a PDF file that is fixed by this patch, but that might be more luck than anything else. Manually checking a couple of files with included JPEG 2000 images, the `Csiz`/`XRsiz`/`YRsiz` parameters were `1` which could explain why this hasn't been an issue before. Obviously we shouldn't generally make changes to `core` code without adding tests, but in this case I'm simply not sure how to obtain/create one. However, since the existing code doesn't make sense this patch could hopefully be deemed acceptable anyway.
This commit is contained in:
parent
25c7a8c215
commit
873556865b
@ -185,8 +185,9 @@ var JpxImage = (function JpxImageClosure() {
|
||||
precision: (data[j] & 0x7F) + 1,
|
||||
isSigned: !!(data[j] & 0x80),
|
||||
XRsiz: data[j + 1],
|
||||
YRsiz: data[j + 1],
|
||||
YRsiz: data[j + 2],
|
||||
};
|
||||
j += 3;
|
||||
calculateComponentDimensions(component, siz);
|
||||
components.push(component);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user