summaryrefslogtreecommitdiff
path: root/cli/app/commands/cortex/upload_bytes.py
blob: 5260b8ebd72136179a8913698893580e77eeffe3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import click

import numpy as np
from PIL import Image
from io import BytesIO
from app.utils.cortex_utils import upload_bytes_to_cortex

@click.command('')
@click.option('-f', '--folder_id', 'opt_folder_id', required=True, 
  help='ID of folder on Cortex')
@click.pass_context
def cli(ctx, opt_folder_id):
  """
  Test uploading a BytesIO file to Cortex
  """
  arr = get_gradation_3d(256, 256, (0, 0, 192), (255, 255, 64), (True, False, False))
  arr = arr.astype(np.uint8)
  image = Image.fromarray(arr)
  fp = BytesIO()
  image.save(fp, format='png')
  upload_bytes_to_cortex(opt_folder_id, "test.png", fp, "image/png")

def get_gradation_2d(start, stop, width, height, is_horizontal):
  if is_horizontal:
    return np.tile(np.linspace(start, stop, width), (height, 1))
  else:
    return np.tile(np.linspace(start, stop, height), (width, 1)).T

def get_gradation_3d(width, height, start_list, stop_list, is_horizontal_list):
  result = np.zeros((height, width, len(start_list)), dtype=np.float)
  for i, (start, stop, is_horizontal) in enumerate(zip(start_list, stop_list, is_horizontal_list)):
    result[:, :, i] = get_gradation_2d(start, stop, width, height, is_horizontal)
  return result