### Install and Start JupyterLab with uv Source: https://github.com/academysoftwarefoundation/openimageio/blob/main/src/doc/pythonbindings.md Alternative method to install and run JupyterLab using the 'uv' tool. ```bash uv run --with jupyter jupyter lab ``` -------------------------------- ### Build and install OpenImageIO using CMake Source: https://github.com/academysoftwarefoundation/openimageio/blob/main/INSTALL.md Build the project and install it into the default installation directory. Use --config Release for a release build. ```bash cmake --build build --target install --config Release ``` -------------------------------- ### Start JupyterLab Source: https://github.com/academysoftwarefoundation/openimageio/blob/main/src/doc/pythonbindings.md Command to launch JupyterLab after installation. ```bash jupyter lab ``` -------------------------------- ### Install Python Package Source: https://github.com/academysoftwarefoundation/openimageio/blob/main/src/python-nanobind/CMakeLists.txt Installs the __init__.py file to the appropriate Python site-packages directory based on the SKBUILD variable. ```cmake if (OIIO_PYTHON_BINDINGS_BACKEND STREQUAL "nanobind") if (SKBUILD) install (FILES __init__.py DESTINATION . COMPONENT user) else () install (FILES __init__.py DESTINATION ${PYTHON_SITE_DIR} COMPONENT user) endif () endif () ``` -------------------------------- ### Install OpenImageIO with vcpkg Source: https://github.com/academysoftwarefoundation/openimageio/blob/main/INSTALL.md Use vcpkg to install the OpenImageIO package. Ensure vcpkg is installed and configured according to its documentation. ```powershell vcpkg install openimageio ``` -------------------------------- ### Build and Install OpenImageIO with CMake Source: https://github.com/academysoftwarefoundation/openimageio/blob/main/AGENTS.md Direct build and installation commands using CMake. This includes configuring the build directory, building the project, and running tests with pattern matching. ```bash cmake -B build -S . cake --build build --target install ctest --test-dir build -R --output-on-failure ``` -------------------------------- ### Install Utility Programs Source: https://github.com/academysoftwarefoundation/openimageio/blob/main/src/cmake/build_GIF_CMakeLists.txt Installs the utility programs if BUILD_UTILS is enabled. ```cmake if(BUILD_UTILS) install(TARGETS ${UTILS} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ) endif() ``` -------------------------------- ### Setup All Agents Source: https://github.com/academysoftwarefoundation/openimageio/blob/main/docs/dev/Agentic_Coding.md Run this command to configure tool-specific files locally for all supported agents. ```shell .agents/setup-agent all # all of the above ``` -------------------------------- ### Create and Install Package Config File Source: https://github.com/academysoftwarefoundation/openimageio/blob/main/src/cmake/build_GIF_CMakeLists.txt Generates and installs the GIFConfig.cmake and GIFConfigVersion.cmake files for package management. ```cmake include(CMakePackageConfigHelpers) write_basic_package_version_file( "${CMAKE_CURRENT_BINARY_DIR}/GIFConfigVersion.cmake" VERSION ${PROJECT_VERSION} COMPATIBILITY SameMajorVersion ) # since we don't have a GIFConfig.cmake file in the source tree, we want to create # one and install it set(GIF_CONFIG_IN " @PACKAGE_INIT@ include(\"${CMAKE_CURRENT_LIST_DIR}/GIFTargets.cmake\") check_required_components(GIF) ") file(WRITE "${CMAKE_CURRENT_SOURCE_DIR}/cmake/GIFConfig.cmake.in" "${GIF_CONFIG_IN}") configure_package_config_file( "${CMAKE_CURRENT_SOURCE_DIR}/cmake/GIFConfig.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/GIFConfig.cmake" INSTALL_DESTINATION lib/cmake/GIF ) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/GIFConfig.cmake" "${CMAKE_CURRENT_BINARY_DIR}/GIFConfigVersion.cmake" DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/GIF ) ``` -------------------------------- ### Setup Agent for Opencode Source: https://github.com/academysoftwarefoundation/openimageio/blob/main/docs/dev/Agentic_Coding.md Run this command to configure tool-specific files locally for Opencode. ```shell .agents/setup-agent opencode # Opencode ``` -------------------------------- ### Build and Install OpenImageIO Source: https://github.com/academysoftwarefoundation/openimageio/blob/main/AGENTS.md Common build commands using the Makefile wrapper for configuring, building, and installing OpenImageIO in Release or Debug mode. Includes commands for cleaning the build directory and formatting source files. ```bash make # configure, build, install (Release) make debug # debug build make clean # wipe build dir (needed when switching branches/modes) make clang-format # format all source files make test # full testsuite make test TEST= # subset matching regex ``` -------------------------------- ### Install txWriter Target Source: https://github.com/academysoftwarefoundation/openimageio/blob/main/src/nuke/txWriter/CMakeLists.txt Installs the built txWriter target to the appropriate location. ```cmake install_targets (txWriter) ``` -------------------------------- ### Install GIF Library Target Source: https://github.com/academysoftwarefoundation/openimageio/blob/main/src/cmake/build_GIF_CMakeLists.txt Installs the GIF library, including its runtime, library, archive, and include files. ```cmake install(TARGETS GIF EXPORT GIFTargets RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ) ``` -------------------------------- ### Setup AI Coding Assistants Source: https://github.com/academysoftwarefoundation/openimageio/blob/main/CONTRIBUTING.md Run the setup script for the AI coding assistant you are using after cloning the repository. This is required for tools like Claude Code, Cursor, GitHub Copilot, OpenAI Codex, and Opencode. ```bash .agents/setup-agent claude # or: cursor, codex, opencode, copilot, all ``` -------------------------------- ### Clear All Agent Setup Source: https://github.com/academysoftwarefoundation/openimageio/blob/main/docs/dev/Agentic_Coding.md Run this command to remove all tool-specific setup configurations. ```shell .agents/setup-agent clear # remove all tool setup ``` -------------------------------- ### Example patterns file for --eraseattrib:fromfile Source: https://github.com/academysoftwarefoundation/openimageio/blob/main/src/doc/oiiotool.md This is an example content for a file used with the --eraseattrib:fromfile option, listing metadata patterns to be removed. ```text Make GPS:.* ``` -------------------------------- ### Setup Agent for Copilot Source: https://github.com/academysoftwarefoundation/openimageio/blob/main/docs/dev/Agentic_Coding.md Run this command to configure tool-specific files locally for GitHub Copilot. ```shell .agents/setup-agent copilot # GitHub Copilot ``` -------------------------------- ### Setup Agent for Cursor Source: https://github.com/academysoftwarefoundation/openimageio/blob/main/docs/dev/Agentic_Coding.md Run this command to configure tool-specific files locally for Cursor. ```shell .agents/setup-agent cursor # Cursor ``` -------------------------------- ### Install GIF Headers Source: https://github.com/academysoftwarefoundation/openimageio/blob/main/src/cmake/build_GIF_CMakeLists.txt Installs GIF library headers, using patched versions from the build directory on Windows and original versions elsewhere. ```cmake if(WIN32) # Install patched headers from build directory install(FILES ${CMAKE_CURRENT_BINARY_DIR}/gif_lib.h ${CMAKE_CURRENT_BINARY_DIR}/gif_hash.h ${CMAKE_CURRENT_BINARY_DIR}/gif_lib_private.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ) else() # Install original headers on non-Windows platforms install(FILES gif_lib.h gif_hash.h gif_lib_private.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ) endif() ``` -------------------------------- ### Writing ImageIO Plugins Source: https://github.com/academysoftwarefoundation/openimageio/blob/main/src/doc/index.md Guides on how to develop custom ImageIO plugins for OpenImageIO. ```APIDOC ## Plugin Introduction ### Description An overview of the plugin system and how to extend OpenImageIO's capabilities. ## Image Reader Plugins ### Description Instructions and best practices for creating image reader plugins. ## Image Writers ### Description Guidance on developing image writer plugins. ## Tips and Conventions ### Description Helpful tips and coding conventions for plugin development. ``` -------------------------------- ### Setup Agent for Claude Source: https://github.com/academysoftwarefoundation/openimageio/blob/main/docs/dev/Agentic_Coding.md Run this command to configure tool-specific files locally for Claude Code. ```shell .agents/setup-agent claude # Claude Code ``` -------------------------------- ### Build and Install OpenImageIO from Source with Python Source: https://github.com/academysoftwarefoundation/openimageio/blob/main/INSTALL.md Compile and install OpenImageIO from source using Python's build backend. This method handles downloading necessary build tools like CMake and Ninja. ```bash pip install . ``` -------------------------------- ### Example: Reading and Processing a Deep Image (C++) Source: https://github.com/academysoftwarefoundation/openimageio/blob/main/src/doc/imageinput.md An example demonstrating how to open a deep image file, read its data using `read_native_deep_image`, and iterate through pixels and samples to print their values. ```APIDOC ## Example: Reading and Processing a Deep Image (C++) ### Description This example demonstrates how to open a deep image file, read its data using `read_native_deep_image`, and iterate through pixels and samples to print their values. ### Code ```cpp auto inp = ImageInput::open (filename); if (! inp) return; const ImageSpec &spec = inp.spec(); if (spec.deep) { DeepData deepdata; inp.read_native_deep_image (0, 0, deepdata); int p = 0; // absolute pixel number for (int y = 0; y < spec.height; ++y) { for (int x = 0; x < spec.width; ++x, ++p) { std::cout << "Pixel " << x << "," << y << ":\n"; if (deepdata.samples(p) == 0) std::cout << " no samples\n"; else for (int c = 0; c < spec.nchannels; ++c) { TypeDesc type = deepdata.channeltype(c); std::cout << " " << spec.channelnames[c] << ": "; void *ptr = deepdata.pointers[p*spec.nchannels+c] for (int s = 0; s < deepdata.samples(p); ++s) { if (type.basetype == TypeDesc::FLOAT || type.basetype == TypeDesc::HALF) std::cout << deepdata.deep_value(p, c, s) << ' '; else if (type.basetype == TypeDesc::UINT32) std::cout << deepdata.deep_value_uint(p, c, s) << ' '; } std::cout << "\n"; } } } } inp.close (); ``` ``` -------------------------------- ### Setup Agent for Codex Source: https://github.com/academysoftwarefoundation/openimageio/blob/main/docs/dev/Agentic_Coding.md Run this command to configure tool-specific files locally for OpenAI Codex. ```shell .agents/setup-agent codex # OpenAI Codex ``` -------------------------------- ### Class and Template Identifier Convention Source: https://github.com/academysoftwarefoundation/openimageio/blob/main/CONTRIBUTING.md Classes and templates should start with an uppercase letter, capitalizing new words. Example shows `shared_ptr` and `scoped_mutex`. ```cpp template shared_ptr; class scoped_mutex; ``` -------------------------------- ### List all Make options Source: https://github.com/academysoftwarefoundation/openimageio/blob/main/INSTALL.md Display a list of all available options and commands for the Make build system. ```makefile make help ``` -------------------------------- ### Install JupyterLab Source: https://github.com/academysoftwarefoundation/openimageio/blob/main/src/doc/pythonbindings.md Command to install JupyterLab for running Python code in notebooks. ```bash pip install jupyterlab ``` -------------------------------- ### Configuring Include Directories Source: https://github.com/academysoftwarefoundation/openimageio/blob/main/src/libOpenImageIO/CMakeLists.txt Sets up include directories for the OpenImageIO target, including installation interfaces, Imath, OpenEXR, and RobinMap. ```cmake target_include_directories (OpenImageIO PUBLIC $ ${OPENIMAGEIO_IMATH_DEPENDENCY_VISIBILITY} ${OPENEXR_INCLUDES} PRIVATE ${ROBINMAP_INCLUDES} ) ``` -------------------------------- ### Set testtex Installation Option Source: https://github.com/academysoftwarefoundation/openimageio/blob/main/src/testtex/CMakeLists.txt Controls whether the testtex program is installed. Set to OFF by default. ```cmake set (ENABLE_INSTALL_testtex OFF PARENT_SCOPE) ``` -------------------------------- ### Create and Configure ImageCache Source: https://github.com/academysoftwarefoundation/openimageio/blob/main/src/doc/imagecache.md Demonstrates how to create an ImageCache instance and set configuration attributes like maximum memory usage and tile size. ```cpp #include using namespace OIIO; // Create an image cache and set some options ImageCache *cache = ImageCache::create (); cache->attribute ("max_memory_MB", 500.0f); cache->attribute ("autotile", 64); ``` -------------------------------- ### oiiotool GIF Output Example Source: https://github.com/academysoftwarefoundation/openimageio/blob/main/docs/CHANGES-1.x.md Example of using oiiotool to create animated GIF images. ```APIDOC ## oiiotool GIF Output Example ### Description Demonstrates how to use `oiiotool` to generate animated GIF images by appending multiple image files and specifying frame rate. ### Command ```bash oiiotool foo*.jpg -siappendall -attrib FramesPerSecond 10.0 -o anim.gif ``` ### Explanation - `foo*.jpg`: Specifies input image files. - `-siappendall`: Appends all input images as subimages. - `-attrib FramesPerSecond 10.0`: Sets the frame rate for the animation. - `-o anim.gif`: Outputs the result as an animated GIF file. ``` -------------------------------- ### Glob Fonts and Conditional Installation Source: https://github.com/academysoftwarefoundation/openimageio/blob/main/src/fonts/CMakeLists.txt This snippet finds all TTF font files and conditionally installs them if INSTALL_FONTS is enabled and Freetype is found. It installs fonts to a specific OpenImageIO subdirectory within the system's data root. ```cmake file (GLOB public_fonts "*/*.ttf") if (INSTALL_FONTS AND (Freetype_FOUND OR FREETYPE_FOUND)) install (FILES ${public_fonts} DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/fonts/OpenImageIO COMPONENT fonts) endif () ``` -------------------------------- ### Set Up Nanobind Package Directory Source: https://github.com/academysoftwarefoundation/openimageio/blob/main/src/python-nanobind/CMakeLists.txt Creates the directory structure for the nanobind Python package and copies the __init__.py file. ```cmake set (nanobind_build_package_dir ${CMAKE_BINARY_DIR}/lib/python/nanobind/OpenImageIO) file (MAKE_DIRECTORY ${nanobind_build_package_dir}) configure_file (__init__.py ${nanobind_build_package_dir}/__init__.py COPYONLY) ``` -------------------------------- ### Sequence Iteration Example Source: https://github.com/academysoftwarefoundation/openimageio/blob/main/testsuite/oiiotool-control/ref/out.txt Shows how oiiotool processes sequences of images, creating numbered output files. ```bash Begin sequence iteration 0 copyA.#.jpg -> ./copyA.0001.jpg copyB.#.jpg -> copyB.0001.jpg Reading ./copyA.0001.jpg Output: copyB.0001.jpg oiiotool Creating ColorConfig Writing copyB.0001.jpg ``` ```bash Begin sequence iteration 1 copyA.#.jpg -> ./copyA.0002.jpg copyB.#.jpg -> copyB.0002.jpg Reading ./copyA.0002.jpg Output: copyB.0002.jpg oiiotool Creating ColorConfig Writing copyB.0002.jpg ``` ```bash Begin sequence iteration 2 copyA.#.jpg -> ./copyA.0003.jpg copyB.#.jpg -> copyB.0003.jpg Reading ./copyA.0003.jpg Output: copyB.0003.jpg oiiotool Creating ColorConfig Writing copyB.0003.jpg ``` ```bash Begin sequence iteration 3 copyA.#.jpg -> ./copyA.0004.jpg copyB.#.jpg -> copyB.0004.jpg Reading ./copyA.0004.jpg Output: copyB.0004.jpg oiiotool Creating ColorConfig Writing copyB.0004.jpg ``` ```bash Begin sequence iteration 4 copyA.#.jpg -> ./copyA.0005.jpg copyB.#.jpg -> copyB.0005.jpg Reading ./copyA.0005.jpg Output: copyB.0005.jpg oiiotool Creating ColorConfig Writing copyB.0005.jpg ``` ```bash Begin sequence iteration 5 copyA.#.jpg -> ./copyA.0006.jpg copyB.#.jpg -> copyB.0006.jpg Reading ./copyA.0006.jpg Output: copyB.0006.jpg oiiotool Creating ColorConfig Writing copyB.0006.jpg ``` ```bash Begin sequence iteration 6 copyA.#.jpg -> ./copyA.0007.jpg copyB.#.jpg -> copyB.0007.jpg Reading ./copyA.0007.jpg Output: copyB.0007.jpg oiiotool Creating ColorConfig Writing copyB.0007.jpg ``` -------------------------------- ### Install OpenImageIO Targets Source: https://github.com/academysoftwarefoundation/openimageio/blob/main/src/libOpenImageIO/CMakeLists.txt Installs the OpenImageIO target. Skips NAMELINK for SKBUILD environments to avoid issues with symbolic links. ```cmake if (SKBUILD) install_targets (NAMELINK_SKIP OpenImageIO ) else () install_targets (OpenImageIO) endif () ``` -------------------------------- ### Clear Specific Agent Setup Source: https://github.com/academysoftwarefoundation/openimageio/blob/main/docs/dev/Agentic_Coding.md Run this command to remove tool-specific setup configurations for a single tool, e.g., Claude. ```shell .agents/setup-agent clear claude # remove setup for one tool ``` -------------------------------- ### Install Exported Targets Source: https://github.com/academysoftwarefoundation/openimageio/blob/main/CMakeLists.txt Installs the exported targets file to the package configuration directory. This makes the targets available to projects that find this package. ```cmake install (EXPORT OIIO_EXPORTED_TARGETS DESTINATION ${OIIO_CONFIG_INSTALL_DIR} FILE ${OIIO_TARGETS_EXPORT_NAME} NAMESPACE ${PROJECT_NAME}::) ``` -------------------------------- ### Example: Visiting all pixels to compute an average color Source: https://github.com/academysoftwarefoundation/openimageio/blob/main/src/doc/imagebuf.md Demonstrates how to use the ImageBuf::Iterator to traverse all pixels in an image and calculate the average color for each channel. ```APIDOC ```cpp void print_channel_averages (const std::string &filename) { // Set up the ImageBuf and read the file ImageBuf buf (filename); bool ok = buf.read (0, 0, true, TypeDesc::FLOAT); // Force a float buffer if (! ok) return; // Initialize a vector to contain the running total int nc = buf.nchannels(); std::vector total (n, 0.0f); // Iterate over all pixels of the image, summing channels separately for (ImageBuf::ConstIterator it (buf); ! it.done(); ++it) for (int c = 0; c < nc; ++c) total[c] += it[c]; // Print the averages imagesize_t npixels = buf.spec().image_pixels(); for (int c = 0; c < nc; ++c) std::cout << "Channel " << c << " avg = " (total[c] / npixels) << "\n"; } ``` ``` -------------------------------- ### Null Format Syntax Example Source: https://github.com/academysoftwarefoundation/openimageio/blob/main/src/doc/builtinplugins.md Demonstrates the REST-ful syntax for the Null reader/writer to specify resolution, channels, and other properties. ```cpp foo.null?RES=640x480&CHANNELS=3 ``` -------------------------------- ### Example Signed-off-by Line for DCO Source: https://github.com/academysoftwarefoundation/openimageio/blob/main/CONTRIBUTING.md This is an example of the Signed-off-by line required for the Developer's Certificate of Origin (DCO). It indicates that the submitter accepts the DCO terms. ```git Signed-off-by: John Doe ``` -------------------------------- ### Setup Static OIIO Utility Library Source: https://github.com/academysoftwarefoundation/openimageio/blob/main/src/libutil/CMakeLists.txt Configures an additional static utility library for OpenImageIO. This is controlled by the OpenImageIO_BUILD_STATIC_UTIL_LIBRARY option. ```cmake option (OpenImageIO_BUILD_STATIC_UTIL_LIBRARY "Build additional static OpenImageIO_Util_static library" OFF) if (OpenImageIO_BUILD_STATIC_UTIL_LIBRARY) setup_oiio_util_library (OpenImageIO_Util_static) endif () ``` -------------------------------- ### Install OpenImageIO Python Module with pip Source: https://github.com/academysoftwarefoundation/openimageio/blob/main/INSTALL.md Install the OpenImageIO Python module directly using pip for convenience. This is suitable if you only need the Python module and CLI tools. ```bash pip install OpenImageIO ``` -------------------------------- ### Configure and Install Package Configuration File Source: https://github.com/academysoftwarefoundation/openimageio/blob/main/CMakeLists.txt Configures a package configuration file from a template and installs it to the specified destination. This file is essential for CMake's find_package to work correctly. ```cmake configure_package_config_file ("${PROJECT_SOURCE_DIR}/src/cmake/Config.cmake.in" "${OIIO_PROJECT_CONFIG}" INSTALL_DESTINATION "${OIIO_CONFIG_INSTALL_DIR}") install (FILES "${OIIO_PROJECT_CONFIG}" "${OIIO_VERSION_CONFIG}" DESTINATION "${OIIO_CONFIG_INSTALL_DIR}") ``` -------------------------------- ### Get Pixel Address Source: https://github.com/academysoftwarefoundation/openimageio/blob/main/src/doc/imagebuf.md Get the memory address of a specific pixel (x, y, z, channel). Use with extreme caution. Returns nullptr if pixel values are not local in RAM. ```cpp void *pixeladdr(int x, int y, int z = 0, int ch = 0); const void *pixeladdr(int x, int y, int z = 0, int ch = 0) const; ``` -------------------------------- ### Range Compression and Expansion Example Source: https://github.com/academysoftwarefoundation/openimageio/blob/main/src/doc/oiiotool.md Demonstrates using range compression and expansion to handle high contrast in HDR images, preventing artifacts like ringing or negative pixel values. ```bash oiiotool hdr.exr --rangecompress --resize 512x512 --rangeexpand -o resized.exr ``` -------------------------------- ### Example: Reading and Processing a Deep Image (Python) Source: https://github.com/academysoftwarefoundation/openimageio/blob/main/src/doc/imageinput.md An example demonstrating how to open a deep image file, read its data using `read_native_deep_image`, and iterate through pixels and samples to print their values. ```APIDOC ## Example: Reading and Processing a Deep Image (Python) ### Description This example demonstrates how to open a deep image file, read its data using `read_native_deep_image`, and iterate through pixels and samples to print their values. ### Code ```python inp = ImageInput::open (filename) if inp is None : return spec = inp.spec() if spec.deep : deepdata = inp.read_native_deep_image (0, 0) p = 0 # absolute pixel number for y in range(spec.height) : for x in range(spec.width) : print ("Pixel", x, ",", y, ":") if deepdata.samples(p) == 0 : print(" no samples) else : for c in range(spec.nchannels) : type = deepdata.channeltype(c) print (" ", spec.channelnames[c], ":") for s in range(deepdata.samples(p) : print (deepdata.deep_value(p, c, s), end="") print("") inp.close() ``` ``` -------------------------------- ### Install Sphinx and Plugins via PIP Source: https://github.com/academysoftwarefoundation/openimageio/blob/main/src/doc/Building_the_docs.md Commands to install Sphinx and its essential plugins (Breathe, Sphinx-tabs, Furo theme) using Python's PIP. These are necessary for processing and styling the documentation. ```bash pip install -U sphinx ``` ```bash pip install breathe ``` ```bash pip install -U sphinx-tabs ``` ```bash pip install furo ``` -------------------------------- ### Define Utility Programs List Source: https://github.com/academysoftwarefoundation/openimageio/blob/main/src/cmake/build_GIF_CMakeLists.txt Lists the utility programs to be built. ```cmake set(UTILS gif2rgb gifbuild gifbg gifclrmp gifcolor gifecho giffilter giffix gifhisto gifinto gifsponge giftext giftool #note: this requires getopt.c, which is not available on Windows gifwedge ) ``` -------------------------------- ### Install Doxygen via Package Managers Source: https://github.com/academysoftwarefoundation/openimageio/blob/main/src/doc/Building_the_docs.md Common commands to install Doxygen using various package managers on different operating systems. Doxygen is required for generating intermediate documentation files. ```bash sudo apt install doxygen ``` ```bash sudo yum install doxygen ``` ```bash brew install doxygen ``` ```bash sudo port install doxygen ``` -------------------------------- ### Setup OIIO Utility Library Source: https://github.com/academysoftwarefoundation/openimageio/blob/main/src/libutil/CMakeLists.txt Configures a utility library for OpenImageIO. This function is used to set up core utility components. ```cmake setup_oiio_util_library (OpenImageIO_Util) ``` -------------------------------- ### oiiotool Frame Sequence Example Expansion Source: https://github.com/academysoftwarefoundation/openimageio/blob/main/src/doc/oiiotool.md Illustrates the expanded command sequence for processing a simple 3-frame image sequence with oiiotool. ```bash oiiotool big.0001.tif --resize 100x100 -o small.0001.tif oiiotool big.0002.tif --resize 100x100 -o small.0002.tif oiiotool big.0003.tif --resize 100x100 -o small.0003.tif ```