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)
|