def optimize_thumbnail(thumbnail):
 try:
  optimize_command = settings.THUMBNAIL_OPTIMIZE_COMMAND[determinetype(thumbnail.path)]
  if (not optimize_command):
   return
 except (TypeError, KeyError, NotImplementedError):
  return
 storage = thumbnail.storage
 try:
  with NamedTemporaryFile() as temp_file:
   thumbnail.seek(0)
   temp_file.write(thumbnail.read())
   temp_file.flush()
   optimize_command = optimize_command.format(filename=temp_file.name)
   output = check_output(optimize_command, stderr=subprocess.STDOUT, shell=True)
   if output:
    logger.warning('{0} returned {1}'.format(optimize_command, output))
   else:
    logger.info('{0} returned nothing'.format(optimize_command))
   with open(temp_file.name, 'rb') as f:
    thumbnail.file = ContentFile(f.read())
    storage.delete(thumbnail.path)
    storage.save(thumbnail.path, thumbnail)
 except Exception as e:
  logger.error(e)

def optimize_thumbnail ( thumbnail ) : try : optimize_command = settings . THUMBNAIL_OPTIMIZE_COMMAND [ determinetype ( thumbnail . path ) ] if ( not optimize_command ) : return except ( TypeError , KeyError , NotImplementedError ) : return storage = thumbnail . storage try : with NamedTemporaryFile ( ) as temp_file : thumbnail . seek ( 0 ) temp_file . write ( thumbnail . read ( ) ) temp_file . flush ( ) optimize_command = optimize_command . format ( filename = temp_file . name ) output = check_output ( optimize_command , stderr = subprocess . STDOUT , shell = True ) if output : logger . warning ( '{0} returned {1}' . format ( optimize_command , output ) ) else : logger . info ( '{0} returned nothing' . format ( optimize_command ) ) with open ( temp_file . name , 'rb' ) as f : thumbnail . file = ContentFile ( f . read ( ) ) storage . delete ( thumbnail . path ) storage . save ( thumbnail . path , thumbnail ) except Exception as e : logger . error ( e )
optimize thumbnail images by removing unnecessary data .