Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93

Warning: Undefined array key "page_file_edit_line" in /home/sportsfever/public_html/filemanger/edit_text_line.php on line 32
/home/sportsfe.../httpdocs/clone/wp-conte.../plugins/embedpre.../assets/pdf/build
File: pdf.worker.js
weight: "normal"
[32500] Fix | Delete
};
[32501] Fix | Delete
const BOLDITALIC = {
[32502] Fix | Delete
style: "italic",
[32503] Fix | Delete
weight: "bold"
[32504] Fix | Delete
};
[32505] Fix | Delete
const substitutionMap = new Map([["Times-Roman", {
[32506] Fix | Delete
local: ["Times New Roman", "Times-Roman", "Times", "Liberation Serif", "Nimbus Roman", "Nimbus Roman L", "Tinos", "Thorndale", "TeX Gyre Termes", "FreeSerif", "Linux Libertine O", "Libertinus Serif", "DejaVu Serif", "Bitstream Vera Serif", "Ubuntu"],
[32507] Fix | Delete
style: NORMAL,
[32508] Fix | Delete
ultimate: "serif"
[32509] Fix | Delete
}], ["Times-Bold", {
[32510] Fix | Delete
alias: "Times-Roman",
[32511] Fix | Delete
style: BOLD,
[32512] Fix | Delete
ultimate: "serif"
[32513] Fix | Delete
}], ["Times-Italic", {
[32514] Fix | Delete
alias: "Times-Roman",
[32515] Fix | Delete
style: ITALIC,
[32516] Fix | Delete
ultimate: "serif"
[32517] Fix | Delete
}], ["Times-BoldItalic", {
[32518] Fix | Delete
alias: "Times-Roman",
[32519] Fix | Delete
style: BOLDITALIC,
[32520] Fix | Delete
ultimate: "serif"
[32521] Fix | Delete
}], ["Helvetica", {
[32522] Fix | Delete
local: ["Helvetica", "Helvetica Neue", "Arial", "Arial Nova", "Liberation Sans", "Arimo", "Nimbus Sans", "Nimbus Sans L", "A030", "TeX Gyre Heros", "FreeSans", "DejaVu Sans", "Albany", "Bitstream Vera Sans", "Arial Unicode MS", "Microsoft Sans Serif", "Apple Symbols", "Cantarell"],
[32523] Fix | Delete
path: "LiberationSans-Regular.ttf",
[32524] Fix | Delete
style: NORMAL,
[32525] Fix | Delete
ultimate: "sans-serif"
[32526] Fix | Delete
}], ["Helvetica-Bold", {
[32527] Fix | Delete
alias: "Helvetica",
[32528] Fix | Delete
path: "LiberationSans-Bold.ttf",
[32529] Fix | Delete
style: BOLD,
[32530] Fix | Delete
ultimate: "sans-serif"
[32531] Fix | Delete
}], ["Helvetica-Oblique", {
[32532] Fix | Delete
alias: "Helvetica",
[32533] Fix | Delete
path: "LiberationSans-Italic.ttf",
[32534] Fix | Delete
style: ITALIC,
[32535] Fix | Delete
ultimate: "sans-serif"
[32536] Fix | Delete
}], ["Helvetica-BoldOblique", {
[32537] Fix | Delete
alias: "Helvetica",
[32538] Fix | Delete
path: "LiberationSans-BoldItalic.ttf",
[32539] Fix | Delete
style: BOLDITALIC,
[32540] Fix | Delete
ultimate: "sans-serif"
[32541] Fix | Delete
}], ["Courier", {
[32542] Fix | Delete
local: ["Courier", "Courier New", "Liberation Mono", "Nimbus Mono", "Nimbus Mono L", "Cousine", "Cumberland", "TeX Gyre Cursor", "FreeMono", "Linux Libertine Mono O", "Libertinus Mono"],
[32543] Fix | Delete
style: NORMAL,
[32544] Fix | Delete
ultimate: "monospace"
[32545] Fix | Delete
}], ["Courier-Bold", {
[32546] Fix | Delete
alias: "Courier",
[32547] Fix | Delete
style: BOLD,
[32548] Fix | Delete
ultimate: "monospace"
[32549] Fix | Delete
}], ["Courier-Oblique", {
[32550] Fix | Delete
alias: "Courier",
[32551] Fix | Delete
style: ITALIC,
[32552] Fix | Delete
ultimate: "monospace"
[32553] Fix | Delete
}], ["Courier-BoldOblique", {
[32554] Fix | Delete
alias: "Courier",
[32555] Fix | Delete
style: BOLDITALIC,
[32556] Fix | Delete
ultimate: "monospace"
[32557] Fix | Delete
}], ["ArialBlack", {
[32558] Fix | Delete
local: ["Arial Black"],
[32559] Fix | Delete
style: {
[32560] Fix | Delete
style: "normal",
[32561] Fix | Delete
weight: "900"
[32562] Fix | Delete
},
[32563] Fix | Delete
fallback: "Helvetica-Bold"
[32564] Fix | Delete
}], ["ArialBlack-Bold", {
[32565] Fix | Delete
alias: "ArialBlack"
[32566] Fix | Delete
}], ["ArialBlack-Italic", {
[32567] Fix | Delete
alias: "ArialBlack",
[32568] Fix | Delete
style: {
[32569] Fix | Delete
style: "italic",
[32570] Fix | Delete
weight: "900"
[32571] Fix | Delete
},
[32572] Fix | Delete
fallback: "Helvetica-BoldOblique"
[32573] Fix | Delete
}], ["ArialBlack-BoldItalic", {
[32574] Fix | Delete
alias: "ArialBlack-Italic"
[32575] Fix | Delete
}], ["ArialNarrow", {
[32576] Fix | Delete
local: ["Arial Narrow", "Liberation Sans Narrow", "Helvetica Condensed", "Nimbus Sans Narrow", "TeX Gyre Heros Cn"],
[32577] Fix | Delete
style: NORMAL,
[32578] Fix | Delete
fallback: "Helvetica"
[32579] Fix | Delete
}], ["ArialNarrow-Bold", {
[32580] Fix | Delete
alias: "ArialNarrow",
[32581] Fix | Delete
style: BOLD,
[32582] Fix | Delete
fallback: "Helvetica-Bold"
[32583] Fix | Delete
}], ["ArialNarrow-Italic", {
[32584] Fix | Delete
alias: "ArialNarrow",
[32585] Fix | Delete
style: ITALIC,
[32586] Fix | Delete
fallback: "Helvetica-Oblique"
[32587] Fix | Delete
}], ["ArialNarrow-BoldItalic", {
[32588] Fix | Delete
alias: "ArialNarrow",
[32589] Fix | Delete
style: BOLDITALIC,
[32590] Fix | Delete
fallback: "Helvetica-BoldOblique"
[32591] Fix | Delete
}], ["Calibri", {
[32592] Fix | Delete
local: ["Calibri", "Carlito"],
[32593] Fix | Delete
style: NORMAL,
[32594] Fix | Delete
fallback: "Helvetica"
[32595] Fix | Delete
}], ["Calibri-Bold", {
[32596] Fix | Delete
alias: "Calibri",
[32597] Fix | Delete
style: BOLD,
[32598] Fix | Delete
fallback: "Helvetica-Bold"
[32599] Fix | Delete
}], ["Calibri-Italic", {
[32600] Fix | Delete
alias: "Calibri",
[32601] Fix | Delete
style: ITALIC,
[32602] Fix | Delete
fallback: "Helvetica-Oblique"
[32603] Fix | Delete
}], ["Calibri-BoldItalic", {
[32604] Fix | Delete
alias: "Calibri",
[32605] Fix | Delete
style: BOLDITALIC,
[32606] Fix | Delete
fallback: "Helvetica-BoldOblique"
[32607] Fix | Delete
}], ["Wingdings", {
[32608] Fix | Delete
local: ["Wingdings", "URW Dingbats"],
[32609] Fix | Delete
style: NORMAL
[32610] Fix | Delete
}], ["Wingdings-Regular", {
[32611] Fix | Delete
alias: "Wingdings"
[32612] Fix | Delete
}], ["Wingdings-Bold", {
[32613] Fix | Delete
alias: "Wingdings"
[32614] Fix | Delete
}]]);
[32615] Fix | Delete
const fontAliases = new Map([["Arial-Black", "ArialBlack"]]);
[32616] Fix | Delete
function getStyleToAppend(style) {
[32617] Fix | Delete
switch (style) {
[32618] Fix | Delete
case BOLD:
[32619] Fix | Delete
return "Bold";
[32620] Fix | Delete
case ITALIC:
[32621] Fix | Delete
return "Italic";
[32622] Fix | Delete
case BOLDITALIC:
[32623] Fix | Delete
return "Bold Italic";
[32624] Fix | Delete
default:
[32625] Fix | Delete
if (style?.weight === "bold") {
[32626] Fix | Delete
return "Bold";
[32627] Fix | Delete
}
[32628] Fix | Delete
if (style?.style === "italic") {
[32629] Fix | Delete
return "Italic";
[32630] Fix | Delete
}
[32631] Fix | Delete
}
[32632] Fix | Delete
return "";
[32633] Fix | Delete
}
[32634] Fix | Delete
function getFamilyName(str) {
[32635] Fix | Delete
const keywords = new Set(["thin", "extralight", "ultralight", "demilight", "semilight", "light", "book", "regular", "normal", "medium", "demibold", "semibold", "bold", "extrabold", "ultrabold", "black", "heavy", "extrablack", "ultrablack", "roman", "italic", "oblique", "ultracondensed", "extracondensed", "condensed", "semicondensed", "normal", "semiexpanded", "expanded", "extraexpanded", "ultraexpanded", "bolditalic"]);
[32636] Fix | Delete
return str.split(/[- ,+]+/g).filter(tok => !keywords.has(tok.toLowerCase())).join(" ");
[32637] Fix | Delete
}
[32638] Fix | Delete
function generateFont({
[32639] Fix | Delete
alias,
[32640] Fix | Delete
local,
[32641] Fix | Delete
path,
[32642] Fix | Delete
fallback,
[32643] Fix | Delete
style,
[32644] Fix | Delete
ultimate
[32645] Fix | Delete
}, src, localFontPath, useFallback = true, usePath = true, append = "") {
[32646] Fix | Delete
const result = {
[32647] Fix | Delete
style: null,
[32648] Fix | Delete
ultimate: null
[32649] Fix | Delete
};
[32650] Fix | Delete
if (local) {
[32651] Fix | Delete
const extra = append ? ` ${append}` : "";
[32652] Fix | Delete
for (const name of local) {
[32653] Fix | Delete
src.push(`local(${name}${extra})`);
[32654] Fix | Delete
}
[32655] Fix | Delete
}
[32656] Fix | Delete
if (alias) {
[32657] Fix | Delete
const substitution = substitutionMap.get(alias);
[32658] Fix | Delete
const aliasAppend = append || getStyleToAppend(style);
[32659] Fix | Delete
Object.assign(result, generateFont(substitution, src, localFontPath, useFallback && !fallback, usePath && !path, aliasAppend));
[32660] Fix | Delete
}
[32661] Fix | Delete
if (style) {
[32662] Fix | Delete
result.style = style;
[32663] Fix | Delete
}
[32664] Fix | Delete
if (ultimate) {
[32665] Fix | Delete
result.ultimate = ultimate;
[32666] Fix | Delete
}
[32667] Fix | Delete
if (useFallback && fallback) {
[32668] Fix | Delete
const fallbackInfo = substitutionMap.get(fallback);
[32669] Fix | Delete
const {
[32670] Fix | Delete
ultimate: fallbackUltimate
[32671] Fix | Delete
} = generateFont(fallbackInfo, src, localFontPath, useFallback, usePath && !path, append);
[32672] Fix | Delete
result.ultimate ||= fallbackUltimate;
[32673] Fix | Delete
}
[32674] Fix | Delete
if (usePath && path && localFontPath) {
[32675] Fix | Delete
src.push(`url(${localFontPath}${path})`);
[32676] Fix | Delete
}
[32677] Fix | Delete
return result;
[32678] Fix | Delete
}
[32679] Fix | Delete
function getFontSubstitution(systemFontCache, idFactory, localFontPath, baseFontName, standardFontName, type) {
[32680] Fix | Delete
if (baseFontName.startsWith("InvalidPDFjsFont_")) {
[32681] Fix | Delete
return null;
[32682] Fix | Delete
}
[32683] Fix | Delete
if ((type === "TrueType" || type === "Type1") && /^[A-Z]{6}\+/.test(baseFontName)) {
[32684] Fix | Delete
baseFontName = baseFontName.slice(7);
[32685] Fix | Delete
}
[32686] Fix | Delete
baseFontName = normalizeFontName(baseFontName);
[32687] Fix | Delete
const key = baseFontName;
[32688] Fix | Delete
let substitutionInfo = systemFontCache.get(key);
[32689] Fix | Delete
if (substitutionInfo) {
[32690] Fix | Delete
return substitutionInfo;
[32691] Fix | Delete
}
[32692] Fix | Delete
let substitution = substitutionMap.get(baseFontName);
[32693] Fix | Delete
if (!substitution) {
[32694] Fix | Delete
for (const [alias, subst] of fontAliases) {
[32695] Fix | Delete
if (baseFontName.startsWith(alias)) {
[32696] Fix | Delete
baseFontName = `${subst}${baseFontName.substring(alias.length)}`;
[32697] Fix | Delete
substitution = substitutionMap.get(baseFontName);
[32698] Fix | Delete
break;
[32699] Fix | Delete
}
[32700] Fix | Delete
}
[32701] Fix | Delete
}
[32702] Fix | Delete
let mustAddBaseFont = false;
[32703] Fix | Delete
if (!substitution) {
[32704] Fix | Delete
substitution = substitutionMap.get(standardFontName);
[32705] Fix | Delete
mustAddBaseFont = true;
[32706] Fix | Delete
}
[32707] Fix | Delete
const loadedName = `${idFactory.getDocId()}_s${idFactory.createFontId()}`;
[32708] Fix | Delete
if (!substitution) {
[32709] Fix | Delete
if (!validateFontName(baseFontName)) {
[32710] Fix | Delete
warn(`Cannot substitute the font because of its name: ${baseFontName}`);
[32711] Fix | Delete
systemFontCache.set(key, null);
[32712] Fix | Delete
return null;
[32713] Fix | Delete
}
[32714] Fix | Delete
const bold = /bold/gi.test(baseFontName);
[32715] Fix | Delete
const italic = /oblique|italic/gi.test(baseFontName);
[32716] Fix | Delete
const style = bold && italic && BOLDITALIC || bold && BOLD || italic && ITALIC || NORMAL;
[32717] Fix | Delete
substitutionInfo = {
[32718] Fix | Delete
css: `"${getFamilyName(baseFontName)}",${loadedName}`,
[32719] Fix | Delete
guessFallback: true,
[32720] Fix | Delete
loadedName,
[32721] Fix | Delete
baseFontName,
[32722] Fix | Delete
src: `local(${baseFontName})`,
[32723] Fix | Delete
style
[32724] Fix | Delete
};
[32725] Fix | Delete
systemFontCache.set(key, substitutionInfo);
[32726] Fix | Delete
return substitutionInfo;
[32727] Fix | Delete
}
[32728] Fix | Delete
const src = [];
[32729] Fix | Delete
if (mustAddBaseFont && validateFontName(baseFontName)) {
[32730] Fix | Delete
src.push(`local(${baseFontName})`);
[32731] Fix | Delete
}
[32732] Fix | Delete
const {
[32733] Fix | Delete
style,
[32734] Fix | Delete
ultimate
[32735] Fix | Delete
} = generateFont(substitution, src, localFontPath);
[32736] Fix | Delete
const guessFallback = ultimate === null;
[32737] Fix | Delete
const fallback = guessFallback ? "" : `,${ultimate}`;
[32738] Fix | Delete
substitutionInfo = {
[32739] Fix | Delete
css: `"${getFamilyName(baseFontName)}",${loadedName}${fallback}`,
[32740] Fix | Delete
guessFallback,
[32741] Fix | Delete
loadedName,
[32742] Fix | Delete
baseFontName,
[32743] Fix | Delete
src: src.join(","),
[32744] Fix | Delete
style
[32745] Fix | Delete
};
[32746] Fix | Delete
systemFontCache.set(key, substitutionInfo);
[32747] Fix | Delete
return substitutionInfo;
[32748] Fix | Delete
}
[32749] Fix | Delete
[32750] Fix | Delete
;// CONCATENATED MODULE: ./src/core/image_resizer.js
[32751] Fix | Delete
[32752] Fix | Delete
[32753] Fix | Delete
[32754] Fix | Delete
[32755] Fix | Delete
[32756] Fix | Delete
[32757] Fix | Delete
[32758] Fix | Delete
const MIN_IMAGE_DIM = 2048;
[32759] Fix | Delete
const MAX_IMAGE_DIM = 65537;
[32760] Fix | Delete
const MAX_ERROR = 128;
[32761] Fix | Delete
class ImageResizer {
[32762] Fix | Delete
constructor(imgData, isMask) {
[32763] Fix | Delete
this._imgData = imgData;
[32764] Fix | Delete
this._isMask = isMask;
[32765] Fix | Delete
}
[32766] Fix | Delete
static needsToBeResized(width, height) {
[32767] Fix | Delete
if (width <= this._goodSquareLength && height <= this._goodSquareLength) {
[32768] Fix | Delete
return false;
[32769] Fix | Delete
}
[32770] Fix | Delete
const {
[32771] Fix | Delete
MAX_DIM
[32772] Fix | Delete
} = this;
[32773] Fix | Delete
if (width > MAX_DIM || height > MAX_DIM) {
[32774] Fix | Delete
return true;
[32775] Fix | Delete
}
[32776] Fix | Delete
const area = width * height;
[32777] Fix | Delete
if (this._hasMaxArea) {
[32778] Fix | Delete
return area > this.MAX_AREA;
[32779] Fix | Delete
}
[32780] Fix | Delete
if (area < this._goodSquareLength ** 2) {
[32781] Fix | Delete
return false;
[32782] Fix | Delete
}
[32783] Fix | Delete
if (this._areGoodDims(width, height)) {
[32784] Fix | Delete
this._goodSquareLength = Math.max(this._goodSquareLength, Math.floor(Math.sqrt(width * height)));
[32785] Fix | Delete
return false;
[32786] Fix | Delete
}
[32787] Fix | Delete
this._goodSquareLength = this._guessMax(this._goodSquareLength, MAX_DIM, MAX_ERROR, 0);
[32788] Fix | Delete
const maxArea = this.MAX_AREA = this._goodSquareLength ** 2;
[32789] Fix | Delete
return area > maxArea;
[32790] Fix | Delete
}
[32791] Fix | Delete
static get MAX_DIM() {
[32792] Fix | Delete
return shadow(this, "MAX_DIM", this._guessMax(MIN_IMAGE_DIM, MAX_IMAGE_DIM, 0, 1));
[32793] Fix | Delete
}
[32794] Fix | Delete
static get MAX_AREA() {
[32795] Fix | Delete
this._hasMaxArea = true;
[32796] Fix | Delete
return shadow(this, "MAX_AREA", this._guessMax(ImageResizer._goodSquareLength, this.MAX_DIM, MAX_ERROR, 0) ** 2);
[32797] Fix | Delete
}
[32798] Fix | Delete
static set MAX_AREA(area) {
[32799] Fix | Delete
if (area >= 0) {
[32800] Fix | Delete
this._hasMaxArea = true;
[32801] Fix | Delete
shadow(this, "MAX_AREA", area);
[32802] Fix | Delete
}
[32803] Fix | Delete
}
[32804] Fix | Delete
static setMaxArea(area) {
[32805] Fix | Delete
if (!this._hasMaxArea) {
[32806] Fix | Delete
this.MAX_AREA = area >> 2;
[32807] Fix | Delete
}
[32808] Fix | Delete
}
[32809] Fix | Delete
static _areGoodDims(width, height) {
[32810] Fix | Delete
try {
[32811] Fix | Delete
const canvas = new OffscreenCanvas(width, height);
[32812] Fix | Delete
const ctx = canvas.getContext("2d");
[32813] Fix | Delete
ctx.fillRect(0, 0, 1, 1);
[32814] Fix | Delete
const opacity = ctx.getImageData(0, 0, 1, 1).data[3];
[32815] Fix | Delete
canvas.width = canvas.height = 1;
[32816] Fix | Delete
return opacity !== 0;
[32817] Fix | Delete
} catch {
[32818] Fix | Delete
return false;
[32819] Fix | Delete
}
[32820] Fix | Delete
}
[32821] Fix | Delete
static _guessMax(start, end, tolerance, defaultHeight) {
[32822] Fix | Delete
while (start + tolerance + 1 < end) {
[32823] Fix | Delete
const middle = Math.floor((start + end) / 2);
[32824] Fix | Delete
const height = defaultHeight || middle;
[32825] Fix | Delete
if (this._areGoodDims(middle, height)) {
[32826] Fix | Delete
start = middle;
[32827] Fix | Delete
} else {
[32828] Fix | Delete
end = middle;
[32829] Fix | Delete
}
[32830] Fix | Delete
}
[32831] Fix | Delete
return start;
[32832] Fix | Delete
}
[32833] Fix | Delete
static async createImage(imgData, isMask = false) {
[32834] Fix | Delete
return new ImageResizer(imgData, isMask)._createImage();
[32835] Fix | Delete
}
[32836] Fix | Delete
async _createImage() {
[32837] Fix | Delete
const data = this._encodeBMP();
[32838] Fix | Delete
const blob = new Blob([data.buffer], {
[32839] Fix | Delete
type: "image/bmp"
[32840] Fix | Delete
});
[32841] Fix | Delete
const bitmapPromise = createImageBitmap(blob);
[32842] Fix | Delete
const {
[32843] Fix | Delete
MAX_AREA,
[32844] Fix | Delete
MAX_DIM
[32845] Fix | Delete
} = ImageResizer;
[32846] Fix | Delete
const {
[32847] Fix | Delete
_imgData: imgData
[32848] Fix | Delete
} = this;
[32849] Fix | Delete
const {
[32850] Fix | Delete
width,
[32851] Fix | Delete
height
[32852] Fix | Delete
} = imgData;
[32853] Fix | Delete
const minFactor = Math.max(width / MAX_DIM, height / MAX_DIM, Math.sqrt(width * height / MAX_AREA));
[32854] Fix | Delete
const firstFactor = Math.max(minFactor, 2);
[32855] Fix | Delete
const factor = Math.round(10 * (minFactor + 1.25)) / 10 / firstFactor;
[32856] Fix | Delete
const N = Math.floor(Math.log2(factor));
[32857] Fix | Delete
const steps = new Array(N + 2).fill(2);
[32858] Fix | Delete
steps[0] = firstFactor;
[32859] Fix | Delete
steps.splice(-1, 1, factor / (1 << N));
[32860] Fix | Delete
let newWidth = width;
[32861] Fix | Delete
let newHeight = height;
[32862] Fix | Delete
let bitmap = await bitmapPromise;
[32863] Fix | Delete
for (const step of steps) {
[32864] Fix | Delete
const prevWidth = newWidth;
[32865] Fix | Delete
const prevHeight = newHeight;
[32866] Fix | Delete
newWidth = Math.floor(newWidth / step) - 1;
[32867] Fix | Delete
newHeight = Math.floor(newHeight / step) - 1;
[32868] Fix | Delete
const canvas = new OffscreenCanvas(newWidth, newHeight);
[32869] Fix | Delete
const ctx = canvas.getContext("2d");
[32870] Fix | Delete
ctx.drawImage(bitmap, 0, 0, prevWidth, prevHeight, 0, 0, newWidth, newHeight);
[32871] Fix | Delete
bitmap = canvas.transferToImageBitmap();
[32872] Fix | Delete
}
[32873] Fix | Delete
imgData.data = null;
[32874] Fix | Delete
imgData.bitmap = bitmap;
[32875] Fix | Delete
imgData.width = newWidth;
[32876] Fix | Delete
imgData.height = newHeight;
[32877] Fix | Delete
return imgData;
[32878] Fix | Delete
}
[32879] Fix | Delete
_encodeBMP() {
[32880] Fix | Delete
const {
[32881] Fix | Delete
width,
[32882] Fix | Delete
height,
[32883] Fix | Delete
kind
[32884] Fix | Delete
} = this._imgData;
[32885] Fix | Delete
let data = this._imgData.data;
[32886] Fix | Delete
let bitPerPixel;
[32887] Fix | Delete
let colorTable = new Uint8Array(0);
[32888] Fix | Delete
let maskTable = colorTable;
[32889] Fix | Delete
let compression = 0;
[32890] Fix | Delete
switch (kind) {
[32891] Fix | Delete
case ImageKind.GRAYSCALE_1BPP:
[32892] Fix | Delete
{
[32893] Fix | Delete
bitPerPixel = 1;
[32894] Fix | Delete
colorTable = new Uint8Array(this._isMask ? [255, 255, 255, 255, 0, 0, 0, 0] : [0, 0, 0, 0, 255, 255, 255, 255]);
[32895] Fix | Delete
const rowLen = width + 7 >> 3;
[32896] Fix | Delete
const rowSize = rowLen + 3 & -4;
[32897] Fix | Delete
if (rowLen !== rowSize) {
[32898] Fix | Delete
const newData = new Uint8Array(rowSize * height);
[32899] Fix | Delete
let k = 0;
[32900] Fix | Delete
for (let i = 0, ii = height * rowLen; i < ii; i += rowLen, k += rowSize) {
[32901] Fix | Delete
newData.set(data.subarray(i, i + rowLen), k);
[32902] Fix | Delete
}
[32903] Fix | Delete
data = newData;
[32904] Fix | Delete
}
[32905] Fix | Delete
break;
[32906] Fix | Delete
}
[32907] Fix | Delete
case ImageKind.RGB_24BPP:
[32908] Fix | Delete
{
[32909] Fix | Delete
bitPerPixel = 24;
[32910] Fix | Delete
if (width & 3) {
[32911] Fix | Delete
const rowLen = 3 * width;
[32912] Fix | Delete
const rowSize = rowLen + 3 & -4;
[32913] Fix | Delete
const extraLen = rowSize - rowLen;
[32914] Fix | Delete
const newData = new Uint8Array(rowSize * height);
[32915] Fix | Delete
let k = 0;
[32916] Fix | Delete
for (let i = 0, ii = height * rowLen; i < ii; i += rowLen) {
[32917] Fix | Delete
const row = data.subarray(i, i + rowLen);
[32918] Fix | Delete
for (let j = 0; j < rowLen; j += 3) {
[32919] Fix | Delete
newData[k++] = row[j + 2];
[32920] Fix | Delete
newData[k++] = row[j + 1];
[32921] Fix | Delete
newData[k++] = row[j];
[32922] Fix | Delete
}
[32923] Fix | Delete
k += extraLen;
[32924] Fix | Delete
}
[32925] Fix | Delete
data = newData;
[32926] Fix | Delete
} else {
[32927] Fix | Delete
for (let i = 0, ii = data.length; i < ii; i += 3) {
[32928] Fix | Delete
const tmp = data[i];
[32929] Fix | Delete
data[i] = data[i + 2];
[32930] Fix | Delete
data[i + 2] = tmp;
[32931] Fix | Delete
}
[32932] Fix | Delete
}
[32933] Fix | Delete
break;
[32934] Fix | Delete
}
[32935] Fix | Delete
case ImageKind.RGBA_32BPP:
[32936] Fix | Delete
bitPerPixel = 32;
[32937] Fix | Delete
compression = 3;
[32938] Fix | Delete
maskTable = new Uint8Array(4 + 4 + 4 + 4 + 52);
[32939] Fix | Delete
const view = new DataView(maskTable.buffer);
[32940] Fix | Delete
if (FeatureTest.isLittleEndian) {
[32941] Fix | Delete
view.setUint32(0, 0x000000ff, true);
[32942] Fix | Delete
view.setUint32(4, 0x0000ff00, true);
[32943] Fix | Delete
view.setUint32(8, 0x00ff0000, true);
[32944] Fix | Delete
view.setUint32(12, 0xff000000, true);
[32945] Fix | Delete
} else {
[32946] Fix | Delete
view.setUint32(0, 0xff000000, true);
[32947] Fix | Delete
view.setUint32(4, 0x00ff0000, true);
[32948] Fix | Delete
view.setUint32(8, 0x0000ff00, true);
[32949] Fix | Delete
view.setUint32(12, 0x000000ff, true);
[32950] Fix | Delete
}
[32951] Fix | Delete
break;
[32952] Fix | Delete
default:
[32953] Fix | Delete
throw new Error("invalid format");
[32954] Fix | Delete
}
[32955] Fix | Delete
let i = 0;
[32956] Fix | Delete
const headerLength = 40 + maskTable.length;
[32957] Fix | Delete
const fileLength = 14 + headerLength + colorTable.length + data.length;
[32958] Fix | Delete
const bmpData = new Uint8Array(fileLength);
[32959] Fix | Delete
const view = new DataView(bmpData.buffer);
[32960] Fix | Delete
view.setUint16(i, 0x4d42, true);
[32961] Fix | Delete
i += 2;
[32962] Fix | Delete
view.setUint32(i, fileLength, true);
[32963] Fix | Delete
i += 4;
[32964] Fix | Delete
view.setUint32(i, 0, true);
[32965] Fix | Delete
i += 4;
[32966] Fix | Delete
view.setUint32(i, 14 + headerLength + colorTable.length, true);
[32967] Fix | Delete
i += 4;
[32968] Fix | Delete
view.setUint32(i, headerLength, true);
[32969] Fix | Delete
i += 4;
[32970] Fix | Delete
view.setInt32(i, width, true);
[32971] Fix | Delete
i += 4;
[32972] Fix | Delete
view.setInt32(i, -height, true);
[32973] Fix | Delete
i += 4;
[32974] Fix | Delete
view.setUint16(i, 1, true);
[32975] Fix | Delete
i += 2;
[32976] Fix | Delete
view.setUint16(i, bitPerPixel, true);
[32977] Fix | Delete
i += 2;
[32978] Fix | Delete
view.setUint32(i, compression, true);
[32979] Fix | Delete
i += 4;
[32980] Fix | Delete
view.setUint32(i, 0, true);
[32981] Fix | Delete
i += 4;
[32982] Fix | Delete
view.setInt32(i, 0, true);
[32983] Fix | Delete
i += 4;
[32984] Fix | Delete
view.setInt32(i, 0, true);
[32985] Fix | Delete
i += 4;
[32986] Fix | Delete
view.setUint32(i, colorTable.length / 4, true);
[32987] Fix | Delete
i += 4;
[32988] Fix | Delete
view.setUint32(i, 0, true);
[32989] Fix | Delete
i += 4;
[32990] Fix | Delete
bmpData.set(maskTable, i);
[32991] Fix | Delete
i += maskTable.length;
[32992] Fix | Delete
bmpData.set(colorTable, i);
[32993] Fix | Delete
i += colorTable.length;
[32994] Fix | Delete
bmpData.set(data, i);
[32995] Fix | Delete
return bmpData;
[32996] Fix | Delete
}
[32997] Fix | Delete
}
[32998] Fix | Delete
ImageResizer._goodSquareLength = MIN_IMAGE_DIM;
[32999] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function