NodeIcon LoadImage

Загружает изображение из файла и при необходимости линеаризирует его. Изображения с глубиной более 32 бит на канал не допускаются. Поддерживаются следующие расширения: jpg, jpeg, png, tif, tiff, exr.

Wrap внутренне работает только с линеаризованными изображениями. Это позволяет правильно выполнять математические операции, необходимые для таких нод, как MergeImage, ExtrapolateImage, TransferTexture. Дополнительную информацию можно найти в разделе Цветовое пространство ниже.


Выход

Изображение Загруженное изображение

Параметры

Имя файла:

имя файла для загрузки. Любая последовательность символов # будет заменена текущим именем файла.

Цветовое пространство файла:
Определить из файла

определяет цветовое пространство по расширению файла. Для файлов jpg, jpeg или png используется цветовое пространство sRGB. Однако если в файле с таким расширением хранится Линейное изображение, явно используйте Цветовое пространство текстуры: Линейное.

Линейное

предполагается, что текстура уже в линейном пространстве и изменять значения пикселей не требуется

sRGB

предположим, что файл sRGB <https://en.wikipedia.org/wiki/SRGB> `_, затем `линеаризовать <https://entropymine.com/imageworsener/srgbformula/> `_ это. Может изменить окончательный тип пикселя изображения, проверьте раздел:ref:`Linearization ниже.

Тип пикселя:
Auto

определяет точный тип пикселя по типу файла. Если изображение линеаризовано, оно имеет тип пикселя Половина.

Другое

конвертируйте изображение в точную глубину, проверьте таблицу ниже

Перезагрузить:

сбрасывает кэш и принудительно загружает изображение с диска

Типы пикселей

Тип пикселя

Поддерживаемые значения

Общее имя

8-битное целое

0 .. 255

uint8

16-битное целое число

0 .. 65_535

uint16

32-битное целое число

0 .. 4_294_967_295

uint32

16-битное с плавающей точкой

-65504.0 .. 5.96046448e-08 .. 65504.0, -inf, inf

half

32-битное с плавающей точкой

-3.40282e+38 .. 1.17549e-38 .. 3.40282e+38, -inf, inf

float

Необходимо принять во внимание следующие важные замечания:

  • Все целые типы присутствуют в варианте беззнакового, поэтому вы не можете использовать или обрабатывать отрицательные целочисленные значения.

  • Все числа с плавающей точкой типы имеют гораздо более широкий поддерживаемый диапазон, но во Wrap Viewport2D единственным видимым диапазоном является 0.0 .. 1.0

  • При преобразовании между различными типами пикселей значения цвета изображения будут соответствующим образом масштабироваться, а иногда и ограничиваться, чтобы соответствовать диапазону значений типа целевого пикселя. Несколько примеров см. в примечании ниже.

Примечание

Например, преобразование исходного изображения float (32-битное с плавающей точкой) в uchar (8-битное целое) масштабирует все значения в диапазоне 0.0 .. 1.0 до диапазона 0 .. 255 и ограничивает все значения за пределами этого диапазона. Например, исходному пикселю со значением красного цвета «1,5» (средний белый) будет присвоено значение 255, что соответствует обычному белому цвету. Соответственно, все изначально отрицательные значения будут просто установлены на черный 0.

Примечание

Преобразование изображения типа integer в изображение типа float масштабирует их от 0 .. 255 до 0,0 .. 1.0. Преобразование между целочисленными типами также следует этому правилу. Например, белый цвет будет масштабироваться от uint16 65535 до uint32 4294967295 или до uint8 255.

Промежуточные преобразования могут быть использованы в таких нодах, как MergeImage, для правильной работы с различными типизированными входами.

Сравнение типов пикселей

Всякий раз, когда типы пикселей сравниваются по их разрядности, применяются следующие правила:

  1. Тип пикселя с меньшим числом разрядности (указан в таблице выше) считается меньшим

  2. В случае одинаковой разрядности предполагается, что целочисленный тип пикселя меньше.

Примечание

Эти правила образуют следующий априор от низшего к высшему:
  • uint8 < uint16 < half < uint32 < float

Цветовое пространство

Есть один случай, когда цветовое пространство имеет большое значение. Использование любого изображения, которое содержит значения вместо цветов, например карту высот или карту смещения.

В этом случае вам следует:

  1. Загрузите его как обычно, но установите для параметра Цветовое пространство файла значение Линейное.

  2. В Viewport2D оно будет выглядеть ярче, чем нужно.

  3. Измените параметр Цветовое пространство у Viewport2D на Линейное или просто нажмите 1.

  4. Теперь цветовые пространства изображения и области просмотра совпадают, и изображение будет отображаться правильно. Обработка также будет исправлена.

Во всех остальных случаях вы можете оставить для параметра Цветовое пространство файла значение Автоопределение по файлу.

Линеаризация

Линеаризация изображений при загрузке имеет значение только в том случае, если исходный файл имеет цветовое пространство sRGB <https://en.wikipedia.org/wiki/SRGB>`_. Чаще всего это происходит, когда на диске записано 8-битное изображение, например jpg, jpeg или png. Короче говоря, цветовые пространства sRGB немного смещают цвета изображения, чтобы более точно сохранить более темные значения.

Поскольку Wrap работает только с линеаризованными изображениями, для обработки обычных 8-битных изображений он должен преобразовать их в sRGBLinear при загрузке и в LinearsRGB при сохранении. Из-за низкой точности 8-битных изображений эти два последовательных преобразования могут привести к потере цветов, в основном более тёмных.

Примечание

Чтобы предотвратить потерю точности при линеаризации, функция Загрузить изображение преобразует 8-битные изображения с повышением частоты в половинные (16-битные с плавающей точкой). Другие изображения (с исходной глубиной 16 и более) не затрагиваются.