| from PIL import Image,ImageDraw |
| from .draw_utils import box_to_xy,to_int_points,box_to_point |
| |
| def create_color_image(width, height, color=(255,255,255)): |
| if color == None: |
| color = (0,0,0) |
| |
| if len(color )== 3: |
| mode ="RGB" |
| elif len(color )== 4: |
| mode ="RGBA" |
|
|
| img = Image.new(mode, (width, height), color) |
| return img |
|
|
| |
| def fill_points(image,points,color=(255,255,255)): |
| return draw_points(image,points,fill=color) |
|
|
| def draw_points(image,points,outline=None,fill=None,width=1): |
| |
| draw = ImageDraw.Draw(image) |
| int_points = [(int(x), int(y)) for x, y in points] |
|
|
| if outline is not None or fill is not None: |
| draw.polygon(int_points, outline=outline,fill=fill,width=width) |
| |
| return image |
|
|
| def draw_box(image,box,outline=None,fill=None): |
| points = to_int_points(box_to_point(box)) |
| return draw_points(image,points,outline,fill) |
|
|
| def from_numpy(numpy_array): |
| return Image.fromarray(numpy_array) |