В режиме PIL RGB ожидаются 8-битные цветовые каналы, но ваш массив, скорее всего, имеет dtype int32
. 75% каждого из ваших целых чисел состоят из неиспользуемых 0 битов, поэтому 75% вашего изображения - черные полосы.
Попробуйте установить dtype
ваших данных на unit8
при вызове randint
.
from PIL import Image
import numpy as np
data=np.random.randint(low=0,high=256,size=128*128*3, dtype=np.uint8)
data=data.reshape(128,128,3)
Image.fromarray(data,'RGB').save("output.png")
Результат (одна возможность из многих):