GithubHelp home page GithubHelp logo

gerhobbelt / openexr Goto Github PK

View Code? Open in Web Editor NEW

This project forked from academysoftwarefoundation/openexr

0.0 1.0 0.0 54.73 MB

OpenEXR is a high dynamic-range (HDR) image file format developed by Industrial Light & Magic for use in computer imaging applications

Home Page: http://www.openexr.com/

License: BSD 3-Clause "New" or "Revised" License

Starlark 0.17% CMake 0.60% C++ 28.88% Shell 0.11% M4 0.19% Batchfile 0.05% C 69.37% Python 0.62%

openexr's Introduction

License CII Best Practices OpenSSF Scorecard Build Status Analysis Status Quality Gate Status

OpenEXR

OpenEXR provides the specification and reference implementation of the EXR file format, the professional-grade image storage format of the motion picture industry.

The purpose of EXR format is to accurately and efficiently represent high-dynamic-range scene-linear image data and associated metadata, with strong support for multi-part, multi-channel use cases.

OpenEXR is widely used in host application software where accuracy is critical, such as photorealistic rendering, texture access, image compositing, deep compositing, and DI.

OpenEXR Project Mission

The goal of the OpenEXR project is to keep the EXR format reliable and modern and to maintain its place as the preferred image format for entertainment content creation.

Major revisions are infrequent, and new features will be carefully weighed against increased complexity. The principal priorities of the project are:

  • Robustness, reliability, security
  • Backwards compatibility, data longevity
  • Performance - read/write/compression/decompression time
  • Simplicity, ease of use, maintainability
  • Wide adoption, multi-platform support - Linux, Windows, macOS, and others

OpenEXR is intended solely for 2D data. It is not appropriate for storage of volumetric data, cached or lit 3D scenes, or more complex 3D data such as light fields.

The goals of the Imath project are simplicity, ease of use, correctness and verifiability, and breadth of adoption. Imath is not intended to be a comprehensive linear algebra or numerical analysis package.

Project Governance

OpenEXR is a project of the Academy Software Foundation. See the project's governance policies, contribution guidelines, and code of conduct for more information.

Quick Start

See the technical documentation for complete details, but to get started, the "hello, world" .exr writer program is:

#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;
}

The CMakeLists.txt to build:

cmake_minimum_required(VERSION 3.10)
project(exrwriter)
find_package(OpenEXR REQUIRED)

add_executable(${PROJECT_NAME} writer.cpp)
target_link_libraries(${PROJECT_NAME} OpenEXR::OpenEXR)

To build:

$ cmake -S . -B _build
$ cmake --build _build

For more details, see The OpenEXR API.

Community

Resources

License

OpenEXR is licensed under the BSD-3-Clause license.


aswf

openexr's People

Contributors

aras-p avatar arkellr avatar barracuda156 avatar blackencino avatar cary-ilm avatar danielkaneider avatar darbyjohnston avatar dlemstra avatar ehanway-ilm avatar ewimmer avatar fkainz avatar fnordware avatar gerhobbelt avatar hjmallon avatar jgoldstone avatar jmertic avatar karlrasche avatar kdt3rd avatar kwizart avatar lgritz avatar meshula avatar mvtk avatar nickrasmussen avatar ogretransporter avatar oxt3479 avatar peterhillman avatar pstanczyk avatar seabeepea avatar vertexwahn avatar xlietz avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.