Получите правильную цветовую палитру из анимированного GIF в Node.js - PullRequest
0 голосов
/ 20 июня 2020

Я бы хотел получить цветовую палитру каждого кадра анимированного GIF. Я использую npm библиотеку 'gif-frames' в Node.js, чтобы сохранить каждый кадр как изображение, моя проблема в том, что изображения большинства кадров имеют странные цвета, отличные от того, который вы видите, если открыть GIF в браузере или в Photoshop. Я предполагаю, что это из-за того, как сжимаются анимированные GIF. Я попытался решить проблему в Python с помощью PIL, но у меня такая же проблема. Как я могу получить изображение для каждого кадра с заданными цветами?

Это код, который я использую

var gifFrames = require('gif-frames');
var fs = require('fs');

gifFrames({ url: 'icontech-2-2019-5.gif', frames: 67 }).then(function (frameData) {
frameData[0].getImage().pipe(fs.createWriteStream('firstframe.jpg'));
});

Я собрал в этой папке 2 образца анимированных GIF-файлов и полученные кадры https://drive.google.com/drive/folders/154QMzq3IVTMqiKoX_mURNqvUabT89xfw

1 Ответ

0 голосов
/ 20 июня 2020

Я обнаружил проблему, мне просто нужно использовать параметр cumulative: true из руководства по модулю: «Если указать кумулятивное значение как true, каждый кадр будет вычисляться путем наложения его поверх предыдущих кадров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...