У меня есть пользовательский формат файла изображения CMYK. Я пытаюсь создать числовой массив данных изображения в файле, а затем создать изображение ПОДУШКИ из массива чисел. Я хотел бы использовать im.show () для просмотра данных изображения.
Мой формат данных:
мои данные упакованы по 2 пикселя на байт. 1 строка данных изображения состоит из 4 цветовых плоскостей данных. Мое изображение - 360x360 hdot x vdots
Когда я пытаюсь создать изображение из массива, я получаю: ValueError: буфер недостаточно велик
Этот проект для работы. Я новичок в питоне и ПОДУШКЕ. Использование: Windows 10, Python 375, Подушка 6.2.0. Я прочитал документы PILLOW, посмотрел многочисленные посты и примеры.
Я прочитал, что массив Image содержит строки и столбцы, инвертированные из массива numpy. В примерах, которые я рассмотрел, не показано преобразование массива numpy для замены строки и столбцов перед вызовом Image.fromArray (array, mode = "CMYK")
#where, 24576 = offsetToImageData
#where, 259200 = imagesize in bytes
#where, 180 = hbytesperline
data = np.fromfile(fName, dtype=bytes, count=imagesize, offset=offsetToImageData)
newdata = data.reshape((hbytesperline, ivdots, numcolors))
im = Image.fromarray(newdata, mode="CMYK")
im.show()