Suppress stderr from ppmquant and ppmtogif

This commit is contained in:
wiredfool 2014-06-29 14:24:32 -07:00
parent 5fdc14facb
commit b981ef425b

View File

@ -334,10 +334,13 @@ def _save_netpbm(im, fp, filename):
import os import os
from subprocess import Popen, check_call, PIPE, CalledProcessError from subprocess import Popen, check_call, PIPE, CalledProcessError
import tempfile
file = im._dump() file = im._dump()
if im.mode != "RGB": if im.mode != "RGB":
with open(filename, 'wb') as f: with open(filename, 'wb') as f:
check_call(["ppmtogif", file], stdout=f) stderr = tempfile.TemporaryFile()
check_call(["ppmtogif", file], stdout=f, stderr=stderr)
else: else:
with open(filename, 'wb') as f: with open(filename, 'wb') as f:
@ -345,9 +348,11 @@ def _save_netpbm(im, fp, filename):
# "ppmquant 256 %s | ppmtogif > %s" % (file, filename) # "ppmquant 256 %s | ppmtogif > %s" % (file, filename)
quant_cmd = ["ppmquant", "256", file] quant_cmd = ["ppmquant", "256", file]
togif_cmd = ["ppmtogif"] togif_cmd = ["ppmtogif"]
quant_proc = Popen(quant_cmd, stdout=PIPE) stderr = tempfile.TemporaryFile()
togif_proc = Popen(togif_cmd, stdin=quant_proc.stdout, stdout=f) quant_proc = Popen(quant_cmd, stdout=PIPE, stderr=stderr)
stderr = tempfile.TemporaryFile()
togif_proc = Popen(togif_cmd, stdin=quant_proc.stdout, stdout=f, stderr=stderr)
# Allow ppmquant to receive SIGPIPE if ppmtogif exits # Allow ppmquant to receive SIGPIPE if ppmtogif exits
quant_proc.stdout.close() quant_proc.stdout.close()