本文整理汇总了Python中wand.image.Image.thumbnail方法的典型用法代码示例。如果您正苦于以下问题:Python Image.thumbnail方法的具体用法?Python Image.thumbnail怎么用?Python Image.thumbnail使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类wand.image.Image
的用法示例。
在下文中一共展示了Image.thumbnail方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: ImageHandler
# 需要导入模块: from wand.image import Image [as 别名]
# 或者: from wand.image.Image import thumbnail [as 别名]
class ImageHandler(BaseHandler):
pil_formats = ['jpg', 'jpeg', 'png', 'eps']
magick_formats = ['psd', 'ai']
def __init__(self, filename, file_type):
self.local_file = filename
self.file_type = file_type
try:
if file_type not in self.magick_formats:
self.im = PILImage.open(filename)
if self.im.mode == 'P':
self.im = self.im.convert('RGBA')
self.size = self.im.size
self.format = self.im.format
self.width = self.im.width
self.height = self.im.height
else:
self.im = WandImage(filename=filename+'[0]')
self.format = file_type
self.size = self.im.size
self.width = self.im.width
self.height = self.im.height
except Exception as e:
print e
def is_smaller(self):
if self.file_type in self.magick_formats:
return False
size = self.size
width = size[0]
height = size[1]
return (width < 200) and (height < 200)
def get_metadata(self):
with exiftool.ExifTool() as et:
metadata = et.get_metadata(self.local_file)
return metadata
def thumbnail(self, thumb_filename):
if self.file_type in self.magick_formats:
self.im.transform(resize=thumbnail_size)
self.im.save(filename=thumb_filename)
else:
self.im.thumbnail((200, 200), PILImage.ANTIALIAS)
self.im.save(thumb_filename, 'JPEG')
def close(self):
if self.file_type not in self.magick_formats:
self.im.close()
示例2: main
# 需要导入模块: from wand.image import Image [as 别名]
# 或者: from wand.image.Image import thumbnail [as 别名]
def main():
mc = redis.StrictRedis()
while True:
hash_value = mc.rpop('_incoming')
if not hash_value:
time.sleep(0.25)
continue
desc = mc.get(hash_value)
if not desc:
continue
desc = cPickle.loads(desc)
try:
desc = desc._replace(status = 'Processing')
mc.set(hash_value, cPickle.dumps(desc))
im = Image(filename=os.path.join('upload', hash_value+'.'+desc.ext))
dt_string = im.metadata.get('exif:DateTimeOriginal')
uniq = im.metadata.get('exif:UniqueCameraModel')
mm = im.metadata.get('exif:Make'),im.metadata.get('exif:Model')
if dt_string is None:
raise Exception("Image date undefined")
dt = datetime.strptime(dt_string, '%Y:%m:%d %H:%M:%S')
if (datetime.now() - dt).days > 365:
raise Exception("Image too old")
im.depth = 8
im.format = 'RGB'
blob = im.make_blob()
im = PIL.Image.frombytes('RGB', im.size, blob)
imgif = {}
model_string = ''
if uniq:
model_string = uniq
imgif[piexif.ImageIFD.UniqueCameraModel] = uniq
else:
if mm[0]:
imgif[piexif.ImageIFD.Make] = mm[0]
if mm[1]:
imgif[piexif.ImageIFD.Model] = mm[1]
model_string = ' '.join([v for v in mm if v])
imgif[piexif.ImageIFD.DateTime] = desc.upload_date
exif = {piexif.ExifIFD.DateTimeOriginal: dt_string,
piexif.ExifIFD.UserComment: desc.name}
exif_dict = { "0th": imgif, "Exif":exif }
exif_bytes = piexif.dump(exif_dict)
fp = io.BytesIO()
im.save(fp, "JPEG", exif = exif_bytes)
saved = fp.getvalue()
size_string = '%i'%len(saved)
desc = ImageDesc(
hash_value = hash_value
, name = desc.name
, ext = desc.ext
, upload_date = desc.upload_date
, creation_date = dt_string
, camera = model_string
, size = size_string
, status = 'OK')
os.remove(os.path.join('upload', hash_value+'.'+desc.ext))
with open(os.path.join('static', hash_value+'.jpg'), 'wb') as f:
f.write(saved)
im.thumbnail((32,32), PIL.Image.ANTIALIAS)
im.save(os.path.join('static', hash_value+'_thumb.jpg'), "JPEG")
mc.set(hash_value, cPickle.dumps(desc))
mc.rpush('_images', hash_value)
except Exception as e:
desc = desc._replace(status = str(e))
mc.setex(hash_value, 60*24, cPickle.dumps(desc))