def __init__(self, res, path, size=util.MAX_THUMBNAIL_SIZE): super(Face, self).__init__() self.path = path self.bmp = wx.Bitmap(path) self.name = None if res.get('faceId'): self.id = res['faceId'] if res.get('persistedFaceId'): self.persisted_id = res['persistedFaceId'] if res.get('faceRectangle'): rect = res['faceRectangle'] self.left = int(rect['left']) self.top = int(rect['top']) self.width = int(rect['width']) self.height = int(rect['height']) self.bmp = self.bmp.GetSubBitmap( wx.Rect(self.left, self.top, self.width, self.height)) if res.get('faceAttributes'): attr = res['faceAttributes'] self.age = int(attr['age']) self.gender = attr['gender'] self.head_pose = "Pitch: {}, Roll:{}, Yaw:{}".format( attr['headPose']['pitch'], attr['headPose']['roll'], attr['headPose']['yaw']) self.smile = float(attr['smile']) > 0 and 'Smile' or 'Not Smile' self.facial_hair = sum(attr['facialHair'].values()) > 0 and 'Yes' \ or 'No' self.glasses = attr['glasses'] self.emotion = max(attr['emotion'], key=lambda key: attr['emotion'][key]) self.bmp = util.scale_bitmap(self.bmp, size)
def create_header(self, parent): panel = wx.Panel(parent, -1) panel.SetBackgroundColour(wx.Colour(*BACKGROUND)) panel.SetForegroundColour(wx.BLACK) feed = self.item.feed paths = ['icons/feed.png'] if feed.has_favicon: paths.insert(0, feed.favicon_path) for path in paths: try: bitmap = util.scale_bitmap(wx.Bitmap(path), 16, 16, wx.Colour(*BACKGROUND)) break except Exception: pass else: bitmap = wx.EmptyBitmap(16, 16) icon = controls.BitmapLink(panel, feed.link, bitmap) icon.SetBackgroundColour(wx.Colour(*BACKGROUND)) width, height = icon.GetSize() feed = self.create_feed(panel, width) button = controls.BitmapLink(panel, popups.COMMAND_CLOSE, wx.Bitmap('icons/cross.png'), wx.Bitmap('icons/cross_hover.png')) button.SetBackgroundColour(wx.Colour(*BACKGROUND)) sizer = wx.BoxSizer(wx.HORIZONTAL) sizer.Add(icon, 0, wx.ALIGN_CENTER|wx.ALL, 10) sizer.Add(feed, 1, wx.ALIGN_CENTER_VERTICAL|wx.TOP|wx.BOTTOM, 5) sizer.Add(button, 0, wx.ALIGN_CENTER|wx.ALL, 10) panel.SetSizer(sizer) self.bind_links([icon, button]) self.bind_widgets([panel]) return panel
def set_bmp(self, bitmap): """Set the image bitmap.""" self.bmp = util.scale_bitmap(bitmap, size=self.size) width = bitmap.GetWidth() new_width = self.bmp.GetWidth() self.scale = 1.0 * new_width / width self.bitmap.SetBitmap(self.bmp) self.sizer.Layout()
def set_path(self, path): """Set the image path.""" bitmap = wx.Bitmap(path) self.bmp = util.scale_bitmap(bitmap, size=self.size) width = bitmap.GetWidth() new_width = self.bmp.GetWidth() self.scale = 1.0 * new_width / width self.bitmap.SetBitmap(self.bmp) self.sizer.Layout()
def __init__(self, res, path, size=util.MAX_THUMBNAIL_SIZE): super(Face, self).__init__() self.path = path self.bmp = wx.Bitmap(path) self.name = None if res.get('faceId'): self.id = res['faceId'] if res.get('persistedFaceId'): self.persisted_id = res['persistedFaceId'] if res.get('faceRectangle'): rect = res['faceRectangle'] self.left = int(rect['left']) self.top = int(rect['top']) self.width = int(rect['width']) self.height = int(rect['height']) self.bmp = self.bmp.GetSubBitmap( wx.Rect(self.left, self.top, self.width, self.height)) if res.get('faceAttributes'): attr = res['faceAttributes'] self.age = int(attr['age']) self.gender = attr['gender'] self.smile = float(attr['smile']) > 0 and 'Smile' or 'Not Smile' self.glasses = attr['glasses'] self.bmp = util.scale_bitmap(self.bmp, size)