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

项目介绍

AcademySoftwareFoundation/openexr 是一个托管在 GitHub 上的开源项目,主要使用 C 编写,采用 BSD 3-Clause "New" or "Revised" License 许可证,目前获得 1.8k 个 Star、695 次 Fork。

仓库全名
AcademySoftwareFoundation/openexr
开源许可证
BSD 3-Clause "New" or "Revised" License
Star 数
1.8k
Fork 数
695
未关闭 Issue
105

README 摘要

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…

完整内容见 GitHub 原始 README 或本页 。

常见问题

openexr 用什么语言开发?

主要使用 C 编写,采用 BSD 3-Clause "New" or "Revised" License 许可证,目前有 1.8k 个 Star。

openexr 可以免费商用吗?

仓库采用 BSD 3-Clause "New" or "Revised" License 许可证,可免费使用与修改,商业使用请遵守许可证条款(例如保留版权声明与许可声明)。

如何获取 openexr 的源码?

可以直接克隆仓库:git clone https://github.com/AcademySoftwareFoundation/openexr.git;安装与运行步骤见仓库 README。

openexr 最近还在维护吗?

仓库最近一次更新为 7月3日,当前有 105 个未关闭 Issue;Star 数为 1.8k,可作为社区活跃度的参考。

关于

GitHub 原始描述(英文)

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

描述取自 GitHub 官方 API,保持仓库作者书写的原文。

简要分析

热度分
5010
价值分
1470
活跃状态
活跃

语言占比

Batchfile
C
C++
CMake
CSS
HTML
M4
Python
Shell
Starlark

Release

README

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.

Building OpenEXR

See the Install instructions for instructions on how to build OpenEXR and its required prerequisites.

Quick Start

See the technical documentation for complete details, but to get started, the “Hello, world” exrwriter.cpp writer program is:

#include <ImfRgbaFile.h>
#include <ImfArray.h>
#include <iostream>

using namespace OPENEXR_IMF_NAMESPACE;

int
main()
{
    int width =  100;
    int height = 50;

    Array2D<Rgba> pixels(height, width);
    for (int y=0; y<height; y++)
    {
        float c = (y / 5 % 2 == 0) ? (y / (float) height) : 0.0;
        for (int x=0; x<width; x++)
            pixels[y][x] = Rgba(c, c, c);
    }

    try {
        RgbaOutputFile file ("stripes.exr", width, height, WRITE_RGBA);
        file.setFrameBuffer (&pixels[0][0], 1, width);
        file.writePixels (height);
    } catch (const std::exception &e) {
        std::cerr << "error writing image file stripes.exr:" << e.what() << std::endl;
        return 1;
    }
    return 0;
}

This creates an image 100 pixels wide and 50 pixels high with horizontal stripes 5 pixels high of graduated intensity, bright on the bottom of the image and dark towards the top. Note that pixel[0][0] is in the upper left:

stripes

The CMakeLists.txt to build:

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)

To build:

$ cmake -S . -B _build -DCMAKE_PREFIX_PATH=<path to OpenEXR libraries/includes>
$ cmake --build _build

For more details, see The OpenEXR API.

Community

Resources

License

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


aswf

评论

暂无评论