





















@@ -69,17 +69,20 @@ beforeAll(async () => {
6969tinyPngWrongExtFile = await writeTempFile(tinyPngBuffer, ".bin");
7070alphaPngBuffer = createSolidPngBuffer(64, 64, { r: 255, g: 0, b: 0, a: 128 });
7171alphaPngFile = await writeTempFile(alphaPngBuffer, ".png");
72-// Keep this small so the alpha-fallback test stays deterministic but fast.
73-const size = 24;
74-fallbackPngBuffer = createGrayscaleAlphaPngBuffer(size, size);
75-fallbackPngFile = await writeTempFile(fallbackPngBuffer, ".png");
76-const smallestPng = await optimizeImageToPng(fallbackPngBuffer, 1);
77-fallbackPngCap = Math.max(1, Math.min(fallbackPngBuffer.length, smallestPng.optimizedSize) - 1);
78-const jpegOptimized = await optimizeImageToJpeg(fallbackPngBuffer, fallbackPngCap);
79-if (jpegOptimized.buffer.length > fallbackPngCap) {
80-throw new Error(
81-`JPEG fallback did not fit cap (jpeg=${jpegOptimized.buffer.length}, cap=${fallbackPngCap})`,
82-);
72+for (const size of [24, 32, 40, 48, 64]) {
73+const buffer = createGrayscaleAlphaPngBuffer(size, size);
74+const smallestPng = await optimizeImageToPng(buffer, 1);
75+const cap = Math.max(1, Math.min(buffer.length, smallestPng.optimizedSize) - 1);
76+const jpegOptimized = await optimizeImageToJpeg(buffer, cap);
77+if (jpegOptimized.buffer.length <= cap) {
78+fallbackPngBuffer = buffer;
79+fallbackPngFile = await writeTempFile(buffer, ".png");
80+fallbackPngCap = cap;
81+break;
82+}
83+}
84+if (!fallbackPngFile) {
85+throw new Error("No PNG alpha fallback fixture could fit the JPEG cap");
8386}
8487});
8588此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。