mirror of
https://github.com/mozilla/pdf.js.git
synced 2026-04-09 14:54:04 +02:00
Simplify the applyOpacity helper function
This function only has a single call-site (if we ignore the unit-tests), where the colors are split into separate parameters. Given that all the color components are modified in the exact same way, it seems easier (and shorter) to pass the colors as-is to `applyOpacity` and have it use `Array.prototype.map()` instead.
This commit is contained in:
parent
5d2c4ed211
commit
498daadf3c
@ -794,13 +794,10 @@ class CSSConstants {
|
||||
}
|
||||
}
|
||||
|
||||
function applyOpacity(r, g, b, opacity) {
|
||||
function applyOpacity(color, opacity) {
|
||||
opacity = MathClamp(opacity ?? 1, 0, 1);
|
||||
const white = 255 * (1 - opacity);
|
||||
r = Math.round(r * opacity + white);
|
||||
g = Math.round(g * opacity + white);
|
||||
b = Math.round(b * opacity + white);
|
||||
return [r, g, b];
|
||||
return color.map(c => Math.round(c * opacity + white));
|
||||
}
|
||||
|
||||
function RGBToHSL(rgb, output) {
|
||||
|
||||
@ -323,7 +323,7 @@ describe("display_utils", function () {
|
||||
ctx.globalAlpha = 0.8;
|
||||
ctx.fillRect(0, 0, 1, 1);
|
||||
const [r, g, b] = ctx.getImageData(0, 0, 1, 1).data;
|
||||
expect(applyOpacity(123, 45, 67, ctx.globalAlpha)).toEqual([r, g, b]);
|
||||
expect(applyOpacity([123, 45, 67], ctx.globalAlpha)).toEqual([r, g, b]);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@ -132,7 +132,7 @@ class CommentManager {
|
||||
return this.#hasForcedColors
|
||||
? null
|
||||
: findContrastColor(
|
||||
applyOpacity(...color, opacity ?? 1),
|
||||
applyOpacity(color, opacity ?? 1),
|
||||
CSSConstants.commentForegroundColor
|
||||
);
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user