From 2360da1472b3868e636af33805d8969ebb037f0a Mon Sep 17 00:00:00 2001 From: ful1e5 <24286590+ful1e5@users.noreply.github.com> Date: Sun, 31 Jan 2021 16:41:38 +0530 Subject: [PATCH] =?UTF-8?q?=F0=9F=96=BC=EF=B8=8F=20frames=20increased?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bitmap/src/index.ts | 34 ++++++++++++++++++++++++++++------ 1 file changed, 28 insertions(+), 6 deletions(-) diff --git a/bitmap/src/index.ts b/bitmap/src/index.ts index c914757..a0b771a 100644 --- a/bitmap/src/index.ts +++ b/bitmap/src/index.ts @@ -75,31 +75,53 @@ const main = async () => { const svg = await getSVGElement(page); let index = 1; + const playbackRate = 0.1; let breakRendering = false; // Rendering 1st frame const img1 = await screenshot(svg); - const key1 = getFrameName(index, svgFilePath); + const key1 = getFrameName(index, svgFilePath, 4); console.log("Saving", key1, "..."); saveFrame(key1, img1); + // stop animation + // @ts-ignore + await page._client.send("Animation.setPlaybackRate", { + playbackRate: 0, + }); + // Rendering frames till `imgN` matched to `img1` while (!breakRendering) { ++index; - const imgN = await screenshot(svg); - const keyN = getFrameName(index, svgFilePath); - console.log("Saving", keyN, "..."); - saveFrame(keyN, imgN); + // resume animation + // @ts-ignore + await page._client.send("Animation.setPlaybackRate", { + playbackRate, + }); + + const imgN = await screenshot(svg); + const keyN = getFrameName(index, svgFilePath, 4); const { data: img1Data, width, height } = PNG.sync.read(img1); const { data: imgNData } = PNG.sync.read(imgN); - const diff = Pixelmatch(img1Data, imgNData, null, width, height); + const diff = Pixelmatch(img1Data, imgNData, null, width, height, { + threshold: 0.2, + }); if (diff <= 100) { breakRendering = !breakRendering; + } else { + console.log("Saving", keyN, "..."); + saveFrame(keyN, imgN); + + // stop animation + // @ts-ignore + await page._client.send("Animation.setPlaybackRate", { + playbackRate: 0, + }); } }