2016-12-11 3 views
1
  • У меня есть список .png (PIL) изображений, которые я хочу соединить вместе в анимированный GIF
  • Чтобы сделать это, я в настоящее время с помощью imageio библиотеки
  • Однако, я не могу найти способ сделать это производить хорошего качества гифы

насколько я знаю, есть два типа настроек можно изменить. Настройки imageio.imread() для чтения .png и настройки imageio.mimwrite() для написания gif. По imageio.help(),imageio: Как повысить качество выходных gifs?

  1. imageio.imread() имеет один чтения только для параметра Я PNG-PIL, ignoregamma, которая принимает логическое значение. Это ничего не меняет для моих выходных gif.
  2. imageio.mimwrite() может относиться к двум форматам. Первый - GIF-PIL. Выход из этого формата показывает только один кадр и, следовательно, нежелателен. Output here.
  3. imageio.mimwrite() имеет второй формат GIF-FI. Это приводит к более перспективным выходам со следующими параметрами:
    • 'quantizer':'wu' генерирует полный GIF с заданными рамками и частотой кадров, но производит «испорченный» вид-качества. Output here.
    • 'quantizer':'nq' генерирует полный gif с лучшим «менее поврежденным» качеством, чем «wu», но не обрабатывает цвет хорошо. Обратите внимание, как легенда в правом нижнем углу имеет тенденцию изменять ее цвет. Output here.

Вот соответствующий код для самого лучшего качества, я мог бы получить до сих пор (GIF-FI с nq)

def gen_gif(self, datetime_list): 
    kwargs_write = {'fps':5.0, 'quantizer':'nq'} 
    frames = [] 
    for datetime in datetime_list: 
     frames.append(imageio.imread(datetime+'.png')) 
    exportname = '{} to {}.gif'.format(datetime_list[0], datetime_list[-1]) 
    imageio.mimsave(exportname, frames, 'GIF-FI', **kwargs_write) 

Функция вызывается с одним списком параметров строк, содержащих полный путь к изображениям .png для компиляции в gif.

ответ

0

Формат GIF может обрабатывать только 256 цветов на каждый кадр. Параметр quantizer определяет метод, который будет использоваться для поиска этих цветов.

Лучший способ контролировать, какие цвета будут использоваться, возможно, уменьшить количество цветов (до 256) по своему усмотрению.

Смежные вопросы