2016-12-16 3 views
0

は、私は次のコードワンドを使ってGIF品質を下げるには?

from wand.image import Image 

def saveSizes(f, filename): 
    scaled_width = 400 
    scaled_hight = 400 
    with Image() as finalImage: 
     with Image(filename=f) as img: 
      for frame in img.sequence: 
       #frame.transform(resize="%dx%d" % (scaled_width, scaled_hight)) 
       frame.compression_quality = 75 
       finalImage.sequence.append(frame) 
     filename += '.gif' 
     finalImage.save(filename = filename) 
saveSizes('source_file.gif', 'dest_file') 

しかし、「source_file.gif」の大きさを持っている「dest_file.gif」のものと同じです。 「compression_quality」属性が機能しないのはなぜですか?

ワンドやその他のPythonライブラリを使用してgifのサイズを小さくする方法がありますか?

また、gifのすべてのフレームについて、次のログがコンソールに表示されています。

Exception ignored in: <bound method Resource.__del__ of <wand.sequence.SingleImage: 901eb12 (200x150)>> 
Traceback (most recent call last): 
    File "/usr/local/lib/python3.5/site-packages/wand/resource.py", line 232, in __del__ 
    self.destroy() 
    File "/usr/local/lib/python3.5/site-packages/wand/sequence.py", line 331, in destroy 
    self.container.sequence[self.index] = self 
    File "/usr/local/lib/python3.5/site-packages/wand/sequence.py", line 304, in index 
    assert image 
AssertionError: 
+0

私見を示したと私は同じエラーを得た1ページにcompression_qualityを適用しようとしたときに、GIFファイルで、ファイルサイズを小さくするための最良の方法を削減することです色の数 - 色の数を31、または63、または127に設定し、それが役立つかどうか確認してください。 –

答えて

0

compression_qualityは、ソース(ファイル全体)で正常に動作します。

pdfファイルと私の作業例:

def ConvertFewPagePdfToPngs(pdf): 
    with wand.image.Image(filename = pdf, resolution = 200) as source: 

     source.compression_quality = 99 
     imagess = source.sequence 
     for i in range(len(imagess)): 
      imagess[i].format = 'png' 
      destFileName = r'path' # depends on i 
      wand.image.Image(imagess[i]).save(filename=destFileName) 

私はあなたが

関連する問題