OpenImageIO — это важная библиотека для обработки ввода и вывода изображений, часто используемая в компьютерной графике и приложениях для визуальных эффектов. Ниже приведено пошаговое руководство по установке OpenImageIO в системах Windows и Linux.
September 8, 2024

OpenImageIO (OIIO) — это библиотека с открытым исходным кодом, предназначенная для чтения, записи и обработки графических файлов. Она широко используется в индустрии визуальных эффектов, анимации и компьютерной графики благодаря своей гибкости, скорости и обширной поддержке различных форматов изображений. Разработана преимущественно компанией Sony Pictures Imageworks.
OpenImageIO — это важная библиотека для обработки ввода и вывода изображений, часто используемая в компьютерной графике и приложениях для визуальных эффектов. Вот пошаговое руководство по установке OpenImageIO в системах Windows и Linux.vcpkg— популярный менеджер библиотек C++.
vcpkg — это бесплатный менеджер пакетов с открытым исходным кодом для библиотек C и C++. Он был разработан компанией Microsoft для упрощения процесса управления и сборки сторонних библиотек в проектах C++. vcpkg помогает разработчикам легко находить, устанавливать и управлять библиотеками на различных платформах, включая Windows, Linux и macOS.
Если вы используете Linux, обязательно установите следующие зависимости:
sudo apt-get install git cmake build-essential curl tar gzip unzip zip pkg-config autoconf automake libtool autoconf-archive
Установите Visual Studio.https://visualstudio.microsoft.com/vs/community/и компоненты C++
Выполните команду `git clone` в репозитории vcpkg от Microsoft:
"git clone https://github.com/microsoft/vcpkg.git"
Перейдите в каталог, куда вы клонировали файл.vcpkgи выполните следующие команды:
.\bootstrap-vcpkg.bat
./bootstrap-vcpkg.sh
Для установки OpenImageIO выполните следующую команду из командной строки.vcpkgкаталог:
vcpkg install openimageio[tools,opencolorio,pybind11]
При сборке с помощью vcpkg привязки Python являются необязательным, но в большинстве случаев необходимым расширением.
Другие параметры можно посмотреть в файле порта openmageio для vcpkg:
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
FEATURES
libraw USE_LIBRAW
opencolorio USE_OPENCOLORIO
ffmpeg USE_FFMPEG
freetype USE_FREETYPE
gif USE_GIF
opencv USE_OPENCV
openjpeg USE_OPENJPEG
webp USE_WEBP
libheif USE_LIBHEIF
pybind11 USE_PYTHON
tools OIIO_BUILD_TOOLS
viewer ENABLE_IV
)vcpkg\installed\x64-windows\lib\python3.10\site-packages\OpenImageIO.cp310-win_amd64.pydк желаемомуoiio папка.vcpkg\installed\x64-windows\binк тому жеoiio папка..pydфайл вOpenImageIO.pyd.Создайте среду с необходимой версией Python (3.11.8) и настройте зависимости, используя следующий скрипт:
Для завершения установки создайте символическую ссылку:
ln -s /vcpkg/installed/x64-linux/lib/python3.11/site-packages/OpenImageIO/OpenImageIO.cpython-311-x86_64-linux-gnu.so /usr/local/lib/python3.11/site-packages/OpenImageIO.so
Сгенерируйте заглушки Python для автозавершения кода и добавьте их в путь поиска Python в VSCode.
python3 -m pip install mypystubgen -m OpenImageIO -o ./
{
"python.pythonPath": "${workspaceFolder}/.venv/bin/python",
"python.analysis.extraPaths": [
"${workspaceFolder}/oiio"
]
}Выполнив эти шаги, вы сможете успешно установить OpenImageIO как на Windows, так и на Linux, что позволит вам использовать его мощные возможности обработки изображений в ваших проектах.
Вот пример работы OIIO, который преобразует exr в png.
import os,sys
sys.path.insert(1, os.path.join(os.getcwd() , '..', 'oiio'))
import OpenImageIO as oiio
from OpenImageIO import ImageInput, ImageOutput
from OpenImageIO import ImageBuf, ImageSpec, ImageBufAlgo
folder = "/show/seq/elements/plate"
# Function to convert EXR to PNG
def convert_exr_to_png(input_path, output_path):
source_image = ImageBuf(input_path)
# Apply color transformation
destination_image = ImageBufAlgo.colorconvert(source_image, "acescg","sRGB", True)
destination_image.set_write_format(oiio.UINT8)
destination_image.write(output_path)
print(f"Converted {input_path} to {output_path}")
# Iterate through all files in the folder
for filename in os.listdir(folder):
if filename.lower().endswith('.exr'):
input_path = os.path.join(folder, filename)
output_path = os.path.join(folder, os.path.splitext(filename)[0] + '.png')
convert_exr_to_png(input_path, output_path)
print("Conversion complete.")# Use the official Debian slim image with Python 3.11.8
FROM python:3.11.8-slim
# Install required packages
RUN apt-get update && \
apt-get install -y \
git \
cmake \
build-essential \
curl \
tar \
gzip \
unzip \
zip \
pkg-config \
autoconf \
automake \
libtool \
pkg-config \
autoconf-archive && \
rm -rf /var/lib/apt/lists/*
# Clone vcpkg repository
RUN git clone https://github.com/microsoft/vcpkg.git /vcpkg
# Set working directory
WORKDIR /vcpkg
# Bootstrap vcpkg
RUN ./bootstrap-vcpkg.sh
# Install OpenImageIO and dependencies via vcpkg
RUN ./vcpkg install openimageio[tools,opencolorio,pybind11]
# Create symlink to make OpenImageIO available in Python's site-packages
RUN ln -s /vcpkg/installed/x64-linux/lib/python3.11/site-packages/OpenImageIO/OpenImageIO.cpython-311-x86_64-linux-gnu.so /usr/local/lib/python3.11/site-packages/OpenImageIO.so
# Default command
CMD [ "python3" ]https://www.studyplan.dev/pro-cpp/vcpkg-windows
https://tomasroggero.com/notes/how-to-install-openimageio-in-mac-os-x-el-capitan