File size: 425 Bytes
aaeb947
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
from PIL import Image
import numpy as np

def image_to_bits(img: Image.Image) -> str:
    img = img.convert('RGB')
    byte_arr = np.array(img).flatten()
    return ''.join(format(b, '08b') for b in byte_arr)

def bits_to_image(bits: str, shape) -> Image.Image:
    byte_list = [int(bits[i:i+8], 2) for i in range(0, len(bits), 8)]
    arr = np.array(byte_list, dtype=np.uint8).reshape(shape)
    return Image.fromarray(arr)