Необходимо понимать, как хранить пользовательские данные изображения CMYK, чтобы Python Pillow Image мог их использовать. - PullRequest
0 голосов
/ 24 октября 2019

У меня есть пользовательский формат файла изображения 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()
...