OpenEXR fornece a especificação e implementação de referência do formato de arquivo EXR, o formato de armazenamento de imagens de nível profissional da indústria cinematográfica.
O objetivo do formato EXR é representar com precisão e eficiência dados de imagem linear de cena de alta faixa dinâmica e metadados associados, com forte suporte para casos de uso multiparte e multicanal.
OpenEXR é amplamente utilizado em softwares de aplicativos host onde a precisão é crítica, como renderização fotorrealística, acesso a texturas, composição de imagens, composição profunda e DI.
O objetivo do projeto OpenEXR é manter o formato EXR confiável e moderno e manter seu lugar como formato de imagem preferido para criação de conteúdo de entretenimento.
As principais revisões são pouco frequentes e os novos recursos serão cuidadosamente avaliados em relação ao aumento da complexidade. As principais prioridades do projeto são:
Robustez, confiabilidade, segurança
Compatibilidade com versões anteriores, longevidade de dados
Desempenho - tempo de leitura/gravação/compressão/descompressão
Simplicidade, facilidade de uso, facilidade de manutenção
Ampla adoção, suporte multiplataforma – Linux, Windows, macOS e outros
OpenEXR destina-se exclusivamente a dados 2D. Não é apropriado para armazenamento de dados volumétricos, cenas 3D em cache ou iluminadas, ou dados 3D mais complexos, como campos de luz.
Os objetivos do projeto Imath são simplicidade, facilidade de uso, correção e verificabilidade e amplitude de adoção. O Imath não pretende ser um pacote abrangente de álgebra linear ou análise numérica.
OpenEXR é um projeto da Academy Software Foundation. Consulte as políticas de governança do projeto, as diretrizes de contribuição e o código de conduta para obter mais informações.
Consulte a documentação técnica para obter detalhes completos, mas para começar, o programa gravador 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; }
O CMakeLists.txt
a ser compilado:
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)
Para construir:
$ cmake -S . -B _build -DCMAKE_PREFIX_PATH=<path to OpenEXR libraries/includes> $ cmake --build _build
Para obter mais detalhes, consulte A API OpenEXR.
Faça uma pergunta:
E-mail: [email protected]
Folga: academysoftwarefdn#openexr
Participe de uma reunião:
As reuniões do Comitê Diretor Técnico são abertas ao público, quinzenalmente, às quintas-feiras, às 13h30, horário do Pacífico.
Calendário: https://lists.aswf.io/g/openexr-dev/calendar
Notas da reunião: https://wiki.aswf.io/display/OEXR/TSC+Meetings
Reportar um bug:
Envie um problema: https://github.com/AcademySoftwareFoundation/openexr/issues
Relate uma vulnerabilidade de segurança:
E-mail para [email protected]
Contribua com uma correção, recurso ou melhoria:
Leia as Diretrizes de Contribuição e o Código de Conduta
Assine o Contrato de Licença de Colaborador
Envie uma solicitação pull: https://github.com/AcademySoftwareFoundation/openexr/pulls
Site: http://www.openexr.com
Documentação técnica: https://openexr.readthedocs.io
Ajuda para portabilidade: Guia de portabilidade do OpenEXR/Imath versão 2.x para 3.x
Imagens de referência: https://github.com/AcademySoftwareFoundation/openexr-images
Política de segurança: SECURITY.md
Notas de versão: CHANGES.md
Colaboradores: CONTRIBUTORS.md
OpenEXR é licenciado sob a licença BSD-3-Clause.