当前位置: 首页>>代码示例>>Python>>正文


Python Image.thumbnail方法代码示例

本文整理汇总了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()
开发者ID:InBetween,项目名称:AssetManager,代码行数:51,代码来源:assetHandler.py

示例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))
开发者ID:nxsofsys,项目名称:exif_example,代码行数:78,代码来源:work.py


注:本文中的wand.image.Image.thumbnail方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。