2016-12-11 2 views
1
  • 나는, 나는 현재
  • 그러나 imageio 라이브러리를 사용하고이를 위해 내가 할 수있는 방법을 찾을 수 없습니다 함께 애니메이션 GIF
  • 에 내가 문자열에 원하는 (PIL) 이미지 .png 형의 목록을 가지고 이것은 지금까지 내가 아는 한, 내가 변경할 수있는 설정의 두 가지 유형이 있습니다 좋은 품질 GIF를

을 생산합니다. .png를 읽는 설정은 imageio.imread()이고, gif를 쓰려면 설정은 imageio.mimwrite()입니다.imageio : 출력 gif의 품질을 높이려면 어떻게합니까?

  1. imageio.imread()는 하나 판독 있었던 파라미터를 가지고 imageio.help()에 따른 전용 부울 소요 PNG-PIL, ignoregamma 대. 이것은 내 출력 gif에 대해 아무 것도 변경하지 않습니다.
  2. imageio.mimwrite()은 두 가지 형식을 나타낼 수 있습니다. 첫 번째는 GIF-PIL입니다. 이 형식의 출력 은 하나의 프레임 만 표시하므로 바람직하지 않습니다. Output here.
  3. imageio.mimwrite()은 두 번째 형식 인 GIF-FI입니다.
    • 'quantizer':'wu'이 지정된 프레임과 프레임 속도와 전체 GIF를 생성하지만 는 '손상'친절한의 품질을 생산 : 이것은 다음과 같은 옵션이 더 유망한 출력을 생성합니다. Output here.
    • 'quantizer':'nq'은 'wu'보다 '품질이 좋지'않은 전체 gif를 생성하지만 은 색상을 잘 처리하지 않습니다.. 오른쪽 아래의 범례가 색상을 변경하는 경향이 있는지 확인하십시오. Output here. 여기

는 기능이 전체를 포함하는 문자열 중 하나 개 list 매개 변수로 호출

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) 

지금까지 (GIF-FInq과)를 얻을 수있는 최고 품질의 관련 코드입니다 GIF로 컴파일 할 .png 이미지 경로.

답변

0

GIF 형식은 프레임 당 256 색만 처리 할 수 ​​있습니다. quantizer 매개 변수는 이러한 색을 찾는 데 사용할 방법을 결정합니다.

어떤 색상을 사용할지 제어하는 ​​가장 좋은 방법은 아마도 색상 수를 256 개까지 줄이는 것입니다.

관련 문제