Я думаю, что проблема в том, что вы сохраняете только значения всех пикселей в вашем файле, но вы не сохраняете размеры изображения.
Итак, когда вы читаете его обратно, если ваше изображение было 8x10 пикселей с 4 значениями CMYK каждое, вы просто получаете значения 8x10x4, которые выглядят как плоский массив из 320 элементов, а не прямоугольное изображение.
Полагаю, вам нужно будет сказать , почему вы хотите это сделать, и можете ли вы принять сохранение размеров изображения в начале файла, если вы хотите получить более полный ответ.
Ближайшая вещь, которая сразу приходит на ум - это numpy.savetxt("CMYK.txt", YourNumpyArray)
, но только для 1-D или 2-D массивов, а у вас 3-D.Вероятно, самое простое решение - , как показано здесь .
Я полагаю, вы знаете, что вы можете сохранить изображение CMYK в виде TIF-файла, который можно легко просмотреть ...
#!/usr/local/bin/python3
from PIL import Image
import numpy as np
img = Image.open('rgb.jpg').convert('CMYK')
img.save('result.tif')