Пример #1
0
    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')
Пример #2
0
    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')
Пример #3
0
    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.")