mirror of
https://github.com/mozilla/pdf.js.git
synced 2025-04-28 23:28:16 +02:00
[api-minor] Remove the forceClamped
-functionality in the Streams (issue 14849)
As it turns out, most of the code-paths in the `PDFImage`-class won't actually pass the TypedArray (containing the image-data) to the `ColorSpace`-code. Hence we *generally* don't need to force the image-data to be a `Uint8ClampedArray`, and can just as well directly use a `Uint8Array` instead. In the following cases we're returning the data without any `ColorSpace`-parsing, and the exact TypedArray used shouldn't matter: -b72a448327/src/core/image.js (L714)
-b72a448327/src/core/image.js (L751)
In the following cases the image-data is only used *internally*, and again the exact TypedArray used shouldn't matter: -b72a448327/src/core/image.js (L762)
with the actual image-data being defined (as `Uint8ClampedArray`) further below -b72a448327/src/core/image.js (L837)
*Please note:* This is tagged `api-minor` because it's API-observable, given that *some* image/mask-data will now be returned as `Uint8Array` rather than using `Uint8ClampedArray` unconditionally. However, that seems like a small price to pay to (slightly) reduce memory usage during image-conversion.
This commit is contained in:
parent
b72a448327
commit
fbf6dee8ee
8 changed files with 44 additions and 94 deletions
|
@ -45,24 +45,20 @@ class Stream extends BaseStream {
|
|||
return this.bytes[this.pos++];
|
||||
}
|
||||
|
||||
getBytes(length, forceClamped = false) {
|
||||
getBytes(length) {
|
||||
const bytes = this.bytes;
|
||||
const pos = this.pos;
|
||||
const strEnd = this.end;
|
||||
|
||||
if (!length) {
|
||||
const subarray = bytes.subarray(pos, strEnd);
|
||||
// `this.bytes` is always a `Uint8Array` here.
|
||||
return forceClamped ? new Uint8ClampedArray(subarray) : subarray;
|
||||
return bytes.subarray(pos, strEnd);
|
||||
}
|
||||
let end = pos + length;
|
||||
if (end > strEnd) {
|
||||
end = strEnd;
|
||||
}
|
||||
this.pos = end;
|
||||
const subarray = bytes.subarray(pos, end);
|
||||
// `this.bytes` is always a `Uint8Array` here.
|
||||
return forceClamped ? new Uint8ClampedArray(subarray) : subarray;
|
||||
return bytes.subarray(pos, end);
|
||||
}
|
||||
|
||||
getByteRange(begin, end) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue