renderers.py 文件源码

python
阅读 33 收藏 0 点赞 0 评论 0

项目:boss 作者: jhuapl-boss 项目源码 文件源码
def render(self, data, media_type=None, renderer_context=None):

        # Return data, squeezing time dimension as this only works with 3D data
        if not data["time_request"]:
            self.render_style = 'binary'
            data["data"].data = np.squeeze(data["data"].data, axis=(0,))
        else:
            # This appears to contain time data. Error out
            renderer_context["response"].status_code = 400
            renderer_context["accepted_media_type"] = 'application/json'
            self.media_type = 'application/json'
            self.format = 'json'
            err_msg = {"status": 400, "message": "The cutout service JPEG interface does not support 4D cutouts",
                       "code": 2005}
            jr = JSONRenderer()
            return jr.render(err_msg, 'application/json', renderer_context)

        if renderer_context['view'].bit_depth != 8:
            # This renderer only works on uint8 data
            renderer_context["response"].status_code = 400
            renderer_context["accepted_media_type"] = 'application/json'
            self.media_type = 'application/json'
            self.format = 'json'
            err_msg = {"status": 400, "message": "The cutout service JPEG interface only supports uint8 image data",
                       "code": 2001}
            jr = JSONRenderer()
            return jr.render(err_msg, 'application/json', renderer_context)

        # Reshape matrix
        d_shape = data["data"].data.shape
        data["data"].data = np.reshape(data["data"].data, (d_shape[0] * d_shape[1], d_shape[2]), order="C")

        # Save to Image
        jpeg_image = Image.fromarray(data["data"].data)
        img_file = io.BytesIO()
        jpeg_image.save(img_file, "JPEG", quality=85)

        # Send file
        img_file.seek(0)
        return img_file.read()
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号