OpenEXR предоставляет спецификацию и эталонную реализацию формата файлов EXR, формата хранения изображений профессионального уровня, используемого в киноиндустрии.
Целью формата EXR является точное и эффективное представление данных линейного изображения сцены с широким динамическим диапазоном и связанных с ним метаданных с мощной поддержкой многочастных и многоканальных вариантов использования.
OpenEXR широко используется в главном прикладном программном обеспечении, где точность имеет решающее значение, например, фотореалистичный рендеринг, доступ к текстурам, компоновка изображений, глубокая компоновка и DI.
Цель проекта OpenEXR — сохранить надежность и современность формата EXR, а также сохранить его место в качестве предпочтительного формата изображений для создания развлекательного контента.
Крупные изменения происходят нечасто, а новые функции будут тщательно сопоставляться с возросшей сложностью. Основными приоритетами проекта являются:
Прочность, надежность, безопасность
Обратная совместимость, долговечность данных
Производительность — время чтения/записи/сжатия/распаковки
Простота, удобство использования, ремонтопригодность
Широкое внедрение, поддержка нескольких платформ — Linux, Windows, macOS и других.
OpenEXR предназначен исключительно для 2D-данных. Он не подходит для хранения объемных данных, кэшированных или освещенных 3D-сцен, а также более сложных 3D-данных, таких как световые поля.
Целями проекта Imath являются простота, удобство использования, корректность и проверяемость, а также широта внедрения. Imath не предназначен для использования в качестве комплексного пакета линейной алгебры или численного анализа.
OpenEXR — это проект Academy Software Foundation. Для получения дополнительной информации ознакомьтесь с политикой управления проектом, рекомендациями по вкладам и кодексом поведения.
Подробную информацию смотрите в технической документации, но для начала вам понадобится программа записи exrwriter.cpp
«Hello, world»:
#include <ImfRgbaFile.h> #include <ImfArray.h> #include <iostream> int main() { try { int width = 10; int height = 10; Imf::Array2D<Imf::Rgba> pixels(width, height); for (int y=0; y<height; y++) for (int x=0; x<width; x++) pixels[y][x] = Imf::Rgba(0, x / (width-1.0f), y / (height-1.0f)); Imf::RgbaOutputFile file ("hello.exr", width, height, Imf::WRITE_RGBA); file.setFrameBuffer (&pixels[0][0], 1, width); file.writePixels (height); } catch (const std::exception &e) { std::cerr << "Unable to read image file hello.exr:" << e.what() << std::endl; return 1; } return 0; }
CMakeLists.txt
для сборки:
cmake_minimum_required(VERSION 3.12) project(exrwriter) find_package(OpenEXR REQUIRED) add_executable(${PROJECT_NAME} exrwriter.cpp) target_link_libraries(${PROJECT_NAME} OpenEXR::OpenEXR)
Чтобы построить:
$ cmake -S . -B _build -DCMAKE_PREFIX_PATH=<path to OpenEXR libraries/includes> $ cmake --build _build
Дополнительные сведения см. в разделе API OpenEXR.
Задайте вопрос:
Электронная почта: [email protected]
Slack: academysoftwarefdn#openexr
Посетите встречу:
Заседания технического руководящего комитета открыты для публики раз в две недели по четвергам в 13:30 по тихоокеанскому времени.
Календарь: https://lists.aswf.io/g/openexr-dev/calendar
Заметки о встрече: https://wiki.aswf.io/display/OEXR/TSC+Meetings
Сообщить об ошибке:
Отправить проблему: https://github.com/AcademySoftwareFoundation/openexr/issues
Сообщите об уязвимости безопасности:
Отправьте электронное письмо на адрес [email protected].
Внесите исправление, функцию или улучшение:
Прочтите правила внесения взносов и кодекс поведения.
Подпишите лицензионное соглашение для участников
Отправьте запрос на извлечение: https://github.com/AcademySoftwareFoundation/openexr/pulls
Сайт: http://www.openexr.com.
Техническая документация: https://openexr.readthedocs.io.
Справка по портированию: Руководство по портированию OpenEXR/Imath версии 2.x на 3.x
Справочные изображения: https://github.com/AcademySoftwareFoundation/openexr-images.
Политика безопасности: SECURITY.md
Примечания к выпуску: CHANGES.md
Авторы: CONTRIBUTORS.md
OpenEXR лицензируется по лицензии BSD-3-Clause.