def get(self, start_response, content, **kwargs): if content: out = str(content) else: out = "Topic found, but no content is available." return server.response_200(start_response, out, content_type='application/json')
def get(self, start_response, content, **kwargs): if content: out = msgconv.extract_values(content) if content is not None else None out = json.dumps(out) else: out = "Topic found, but no content is available." return server.response_200(start_response, str(out), content_type='application/json')
def get(self, start_response, content, maxsize=0, crop=False, **kwargs): maxsize = int(maxsize) crop = bool(crop) if content.__class__.__name__ == "OccupancyGrid": #im = PIL.Image.frombytes('P', (content.info.width, content.info.height), bytes(content.data)) from numpy import array im_bytes = array(content.data) im_bytes.shape = (content.info.width, content.info.height) im_bytes = im_bytes.astype('u1') im = PIL.Image.fromarray(im_bytes, 'P') #generate the color palette palette = [] for i in range(0, 256): if i <= 100: palette.extend([(100-i) * 255/100] * 3) else: palette.extend([170, 170, 255]) im.putpalette(palette) if crop: bg = PIL.Image.new(im.mode, im.size, im.getpixel((0,0))) diff = PIL.ImageChops.difference(im, bg) bbox = diff.getbbox() if bbox: im = im.crop(bbox) print "Cropped" else: im = bg if maxsize > 0 and maxsize < max(im.size[0], im.size[1]): im.thumbnail([maxsize]*2) if not self.can_use_palette(): im = im.convert() output = StringIO.StringIO() im.save(output, format=self.get_image_type()) return server.response_200(start_response,output.getvalue(), content_type=self.get_mime_type()) else: return server.response_500(start_response,"No image converter for this topic type.")