2016-12-11 25 views
1
  • 私は、私は現在
  • しかしimageioライブラリを使用していますこれを行うには、私が行うための方法を見つけることができません一緒にアニメーションGIF
  • に私は文字列にしたい(PIL)の画像を.pngのリストを持っていますこれは私の知る限りでは、私が変更できる設定の2種類があります良質 GIFを

を生成します。 .pngを読むための設定はimageio.imread()、GIFを書くための設定はimageio.mimwrite()です。 imageio.help()によると、imageio:出力GIFの品質を上げるには?

  1. imageio.imread()ははブール値をとるだけPNG-PILためignoregammaをPARAMTERを読みました。これは私の出力GIFのために何も変わらない。
  2. imageio.mimwrite()は、2つの形式を参照できます。最初はGIF-PILです。このフォーマットからの出力は、1つのフレームのみを示し、したがって望ましくない。 Output here
  3. imageio.mimwrite()の形式は、GIF-FIです。
    • 'quantizer':'wu'が指定したフレームとフレームレートとの完全なGIF画像を生成するが、は「壊れた」種類-の品質を生成します。これは、次のオプションでより多くの有望な出力を生成します。 Output here
    • 'quantizer':'nq'は、「wu」よりも「劣化が少ない」品質のフルGIFを生成しますが、はウェルを正しく処理しません。右下の凡例がどのように色を変えようとしているかに注目してください。 Output here

ここで私はこれまでのところ(nqGIF-FI)を得ることができる最高の品質に関連するコードだ

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) 

機能は、完全を含む文字列の1つのリストパラメータで呼ばれていますGIFにコンパイルされる.pngイメージへのパス。

答えて

0

GIFフォーマットでは、フレームあたり256色しか処理できません。 quantizerパラメータは、これらの色を見つけるために使用される方法を決定します。

どの色を使用するかを制御する最良の方法は、おそらく色数を256色に減らすことです。

関連する問題