• Stars
    star
    1,966
  • Rank 23,583 (Top 0.5 %)
  • Language
    C++
  • License
    Apache License 2.0
  • Created almost 14 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Reading, writing, and processing images in a wide variety of file formats, using a format-agnostic API, aimed at VFX applications.

License CI CII Best Practices latest packaged version(s)

Introduction

Mission statement: OpenImageIO is a toolset for reading, writing, and manipulating image files of any image file format relevant to VFX / animation via a format-agnostic API with a feature set, scalability, and robustness needed for feature film production.

The primary target audience for OIIO is VFX studios and developers of tools such as renderers, compositors, viewers, and other image-related software you'd find in a production pipeline.

OpenImageIO consists of:

  • Simple but powerful ImageInput and ImageOutput APIs that provide an abstraction for reading and writing image files of nearly any format, without the calling application needing to know any of the details of these file formats, and indeed without the calling application needing to be aware of which formats are available.

  • A library that manages subclasses of ImageInput and ImageOutput that implement I/O from specific file formats, with each file format's implementation stored as a plug-in. Therefore, an application using OpenImageIO's APIs can read and write any image file for which a plugin can be found at runtime.

  • Plugins implementing I/O for several popular image file formats, including TIFF, JPEG/JFIF, JPEG XL, OpenEXR, PNG, HDR/RGBE, ICO, BMP, Targa, JPEG-2000, RMan Zfile, FITS, DDS, Softimage PIC, PNM, DPX, Cineon, IFF, OpenVDB, Ptex, Photoshop PSD, Wavefront RLA, SGI, WebP, GIF, DICOM, HEIF/HEIC/AVIF, many "RAW" digital camera formats, and a variety of movie formats (readable as individual frames). More are being developed all the time.

  • Several command line image tools based on these classes, including oiiotool (command-line format conversion and image processing), iinfo (print detailed info about images), iconvert (convert among formats, data types, or modify metadata), idiff (compare images), igrep (search images for matching metadata), and iv (an image viewer). Because these tools are based on ImageInput/ImageOutput, they work with any image formats for which ImageIO plugins are available.

  • An ImageCache class that transparently manages a cache so that it can access truly vast amounts of image data (tens of thousands of image files totaling multiple TB) very efficiently using only a tiny amount (tens of megabytes at most) of runtime memory.

  • A TextureSystem class that provides filtered MIP-map texture lookups, atop the nice caching behavior of ImageCache. This is used in commercial renderers and has been used on many large VFX and animated films.

  • ImageBuf and ImageBufAlgo functions -- a simple class for storing and manipulating whole images in memory, and a collection of the most useful computations you might want to do involving those images, including many image processing operations.

  • Python bindings for all of the major APIs.

๐Ÿข Project administration and Licensing

OpenImageIO is (c) Copyright Contributors to the OpenImageIO project.

For original code, we use the Apache-2.0 license, and for documentation, the Creative Commons Attribution 4.0 Unported License. In 2023 we asked historical users to relicense from the original BSD-3-clause license to Apache-2.0, and over 99.75% of lines of code have been relicensed to Apache-2.0. A small amount of code incorporated into this repository from other projects are covered by compatible third-party open source licenses.

The OpenImageIO project is part of the Academy Software Foundation, a part of the Linux Foundation formed in collaboration with the Academy of Motion Picture Arts and Sciences. The Technical Charter and Project Governance explain how the project is run, who makes decisions, etc. Please be aware of our Code of Conduct.

๐Ÿ’ User Documentation

OpenImageIO Documentation on ReadTheDocs is the best place to start if you are interested in how to use OpenImageIO, its APIs, its component programs (once they are built). There is also a PDF version.

๐Ÿ‘ท Building and installing OpenImageIO

๐Ÿš‘ Contact & reporting problems

Simple "how do I...", "I'm having trouble", or "is this a bug" questions are best asked on the oiio-dev developer mail list. That's where the most people will see it and potentially be able to answer your question quickly (more so than a GH "issue"). For quick questions, you could also try the ASWF Slack #openimageio channel.

Bugs, build problems, and discovered vulnerabilities that you are relatively certain is a legit problem in the code, and for which you can give clear instructions for how to reproduce, should be reported as issues.

If confidentiality precludes a public question or issue, you may contact us privately at [email protected], or for security-related issues [email protected].

๐Ÿ”ง Contributing and developer documentation

OpenImageIO welcomes code contributions, and nearly 200 people have done so over the years. We take code contributions via the usual GitHub pull request (PR) mechanism.

  • CONTRIBUTING has detailed instructions about the development process.
  • ROADMAP is a high-level overview of the current development priorities for the next annual release, expected in September, 2024.
  • RELEASING explains our policies and procedures for making releases. We have a major, possibly-compatibility-breaking, release annually in September/October, and minor bug fix and safe feature addition release at the beginning of every month.
  • Building the docs has instructions for building the documentation locally, which may be helpful if you are editing the documentation in nontrivial ways and want to preview the appearance.

โ˜Ž๏ธ Communications channels and additional resources

More Repositories

1

openvdb

OpenVDB - Sparse volume data structure and tools
C++
2,599
star
2

OpenShadingLanguage

Advanced shading language for production GI renderers
C++
2,100
star
3

MaterialX

MaterialX is an open standard for the exchange of rich material and look-development content across applications and renderers.
C++
1,830
star
4

OpenColorIO

A color management framework for visual effects and animation.
C++
1,781
star
5

openexr

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.
C
1,624
star
6

OpenTimelineIO

Open Source API and interchange format for editorial timeline information.
Python
1,457
star
7

rez

An integrated package configuration, build and deployment system for software
Python
939
star
8

OpenCue

A render management system you can deploy for visual effects and animation productions.
Python
824
star
9

xstudio

xSTUDIO is a modern, high performance and feature rich playback and review application designed for organisations and individuals in the post production, VFX and Animation industries.
C++
628
star
10

OpenRV

Open source version of RV, the Sci-Tech award-winning media review and playback software.
C++
575
star
11

OpenPBR

Specification and reference implementation for the OpenPBR Surface shading model
CSS
430
star
12

openfx

OpenFX effects API
C++
406
star
13

Imath

Imath is a C++ and python library of 2D and 3D vector, matrix, and math operations for computer graphics
C++
373
star
14

OpenColorIO-Config-ACES

Python
263
star
15

aswf-docker

Common container configuration
Python
149
star
16

rawtoaces

RAW to ACES Utility
C++
141
star
17

aswf-landscape

๐ŸŒ„Landscape for popular open source projects used in the motion picture industry. This interactive landscape similar to that of the CNCF Landscape (https://l.cncf.io/) that sorts through popular open source projects used for visual effects, animation, and image creation, and shows details including GitHub stars, funding or market cap, first and last commits, contributor count and many more.
121
star
18

openexr-images

Collection of images associated with the OpenEXR distribution
98
star
19

tac

Materials and meeting notes for the ASWF Technical Advisory Council (TAC)
HTML
93
star
20

wg-usd

USD Working Group collaboration and resources
61
star
21

OpenImageIO-images

OpenImageIO test images
Shell
37
star
22

EncodingGuidelines

This site provides guidelines for encoding frames to movie files for review.
Dockerfile
33
star
23

foundation

Academy Software Foundation foundation level resources, such as the charter, FAQ about the project, and other public assets
Python
17
star
24

archived-ci-management

Archived -- April 29, 2020 -- Jenkins job and cloud configuration
Shell
16
star
25

opencue.io

Source for OpenCue website
HTML
15
star
26

openvdb-website

The source code behind https://www.openvdb.org
JavaScript
13
star
27

aswf-sample-project

ASWF Sample Project
CMake
13
star
28

wg-python3

Python 3 Working Group
12
star
29

ori-shared-platform

Python
12
star
30

dpel-website

Website for the Digital Production Example Library
Astro
8
star
31

wg-ci

ASWF Continuous Integration Working Group
8
star
32

artwork

๐ŸŽจASWF related logos and artwork
HTML
8
star
33

ColorInterop

Color Interop Forum
7
star
34

openexr-examples

Example code using the OpenEXR library
C++
6
star
35

wg-review-approval

Review and Approval WG
4
star
36

materialx-website

Source files for www.materialx.org
HTML
3
star
37

aswf-sample-wg

Repository template for a working group
3
star
38

openreviewinitiative-test

Test for CLAs for Open Review Initiative
2
star
39

rez-test

2
star
40

openexr-website

The OpenEXR website
1
star
41

Imath-website

The Imath website
1
star
42

wg-assets

Asset Repository WG
1
star