مكتبة OpenImageIO أساسية للتعامل مع إدخال وإخراج ملفات الصور، وتُستخدم بكثرة في تطبيقات الرسومات الحاسوبية والمؤثرات البصرية. إليك دليلًا تفصيليًا لتثبيت OpenImageIO على أنظمة ويندوز ولينكس.
September 8, 2024

OpenImageIO (OIIO) مكتبة مفتوحة المصدر مصممة لقراءة وكتابة ومعالجة ملفات الصور. تُستخدم على نطاق واسع في صناعات المؤثرات البصرية والرسوم المتحركة ورسومات الحاسوب نظرًا لمرونتها وسرعتها ودعمها الشامل لمختلف تنسيقات الصور. طُوّرت بشكل أساسي من قِبل شركة Sony Pictures Imageworks.
تُعد مكتبة OpenImageIO مكتبة أساسية للتعامل مع إدخال وإخراج ملفات الصور، وتُستخدم بكثرة في تطبيقات رسومات الحاسوب والمؤثرات البصرية. إليك دليلًا تفصيليًا لتثبيت OpenImageIO على أنظمة ويندوز ولينكس باستخدامvcpkg، وهو مدير مكتبات C++ شائع.
vcpkg هو مدير حزم مجاني ومفتوح المصدر لمكتبات لغتي C و C++. طوّرته مايكروسوفت لتبسيط عملية إدارة وبناء مكتبات الطرف الثالث في مشاريع C++. يساعد vcpkg المطورين على إيجاد المكتبات وتثبيتها وإدارتها بسهولة عبر منصات متعددة، بما في ذلك ويندوز ولينكس وماك أو إس.
إذا كنت تستخدم نظام لينكس، فتأكد من تثبيت التبعيات التالية:
sudo apt-get install git cmake build-essential curl tar gzip unzip zip pkg-config autoconf automake libtool autoconf-archive
قم بتثبيت Visual Studiohttps://visualstudio.microsoft.com/vs/community/ومكونات لغة C++
قم بتشغيل الأمر git clone على مستودع vcpkg من مايكروسوفت:
"git clone https://github.com/microsoft/vcpkg.git"
انتقل إلى المجلد الذي قمت باستنساخهvcpkgوقم بتشغيل الأوامر التالية:
.\bootstrap-vcpkg.bat
.\vcpkg.exe integration install
./bootstrap-vcpkg.sh
لتثبيت OpenImageIO، قم بتشغيل الأمر التالي من داخلvcpkgالدليل:
vcpkg install openimageio[tools,opencolorio,pybind11]
عند البناء باستخدام vcpkg، تكون روابط بايثون امتدادًا اختياريًا ولكنه ضروري في معظم الحالات.
يمكن الاطلاع على خيارات أخرى من خلال النظر إلى ملف منفذ 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.قم بإنشاء بيئة باستخدام إصدار بايثون المطلوب (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