OpenEXR menyediakan spesifikasi dan implementasi referensi format file EXR, format penyimpanan gambar kelas profesional di industri film.
Tujuan format EXR adalah untuk secara akurat dan efisien merepresentasikan data gambar linier pemandangan dengan rentang dinamis tinggi dan metadata terkait, dengan dukungan kuat untuk kasus penggunaan multi-bagian dan multi-saluran.
OpenEXR banyak digunakan dalam perangkat lunak aplikasi host yang mengutamakan akurasi, seperti rendering fotorealistik, akses tekstur, pengomposisian gambar, pengomposisian mendalam, dan DI.
Tujuan dari proyek OpenEXR adalah untuk menjaga format EXR tetap andal dan modern serta mempertahankan posisinya sebagai format gambar pilihan untuk pembuatan konten hiburan.
Revisi besar jarang terjadi, dan fitur-fitur baru akan dipertimbangkan secara hati-hati terhadap peningkatan kompleksitas. Prioritas utama proyek ini adalah:
Kekokohan, keandalan, keamanan
Kompatibilitas mundur, umur panjang data
Kinerja - waktu baca/tulis/kompresi/dekompresi
Kesederhanaan, kemudahan penggunaan, pemeliharaan
Adopsi luas, dukungan multi-platform - Linux, Windows, macOS, dan lainnya
OpenEXR ditujukan hanya untuk data 2D. Ini tidak sesuai untuk penyimpanan data volumetrik, adegan 3D yang di-cache atau menyala, atau data 3D yang lebih kompleks seperti bidang cahaya.
Tujuan dari proyek Imath adalah kesederhanaan, kemudahan penggunaan, kebenaran dan verifikasi, dan luasnya adopsi. Imath tidak dimaksudkan sebagai paket analisis aljabar linier atau numerik yang komprehensif.
OpenEXR adalah proyek dari Academy Software Foundation. Lihat kebijakan tata kelola proyek, pedoman kontribusi, dan kode etik untuk informasi lebih lanjut.
Lihat dokumentasi teknis untuk detail selengkapnya, tetapi untuk memulai, program penulis exrwriter.cpp
"Halo, dunia" adalah:
#include <ImfRgbaFile.h> #include <ImfArray.h> #include <iostream> int main() { try { int width = 10; int height = 10; Imf::Array2D<Imf::Rgba> pixels(width, height); for (int y=0; y<height; y++) for (int x=0; x<width; x++) pixels[y][x] = Imf::Rgba(0, x / (width-1.0f), y / (height-1.0f)); Imf::RgbaOutputFile file ("hello.exr", width, height, Imf::WRITE_RGBA); file.setFrameBuffer (&pixels[0][0], 1, width); file.writePixels (height); } catch (const std::exception &e) { std::cerr << "Unable to read image file hello.exr:" << e.what() << std::endl; return 1; } return 0; }
CMakeLists.txt
yang akan dibuat:
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)
Untuk membangun:
$ cmake -S . -B _build -DCMAKE_PREFIX_PATH=<path to OpenEXR libraries/includes> $ cmake --build _build
Untuk lebih jelasnya, lihat OpenEXR API.
Ajukan pertanyaan:
Email: [email protected]
Kendur: academysoftwarefdn#openexr
Menghadiri pertemuan:
Rapat Komite Pengarah Teknis terbuka untuk umum, setiap dua mingguan pada hari Kamis, pukul 13.30 Waktu Pasifik.
Kalender: https://lists.aswf.io/g/openexr-dev/calendar
Catatan Rapat: https://wiki.aswf.io/display/OEXR/TSC+Meetings
Laporkan bug:
Kirim Masalah: https://github.com/AcademySoftwareFoundation/openexr/issues
Laporkan kerentanan keamanan:
Email ke [email protected]
Kontribusikan Perbaikan, Fitur, atau Peningkatan:
Baca Pedoman Kontribusi dan Kode Etik
Tanda tangani Perjanjian Lisensi Kontributor
Kirim Permintaan Tarik: https://github.com/AcademySoftwareFoundation/openexr/pulls
Situs web: http://www.openexr.com
Dokumentasi teknis: https://openexr.readthedocs.io
Bantuan porting: Panduan Porting OpenEXR/Imath Versi 2.x hingga 3.x
Gambar referensi: https://github.com/AcademySoftwareFoundation/openexr-images
Kebijakan keamanan: SECURITY.md
Catatan rilis: PERUBAHAN.md
Kontributor: KONTRIBUTOR.md
OpenEXR dilisensikan di bawah lisensi BSD-3-Clause.