![]() ![]() | ![]() |
openexr: update to 3.3.0. ## Version 3.3.0 (September 30, 2024) Minor release two significant changes: - The C++ API now uses the OpenEXRCore library underneath. - This is a transparent change to the existing API, although the ABI (i.e. structure / class layout) has changed - Existing reading of pixel data should be more efficient due to fewer memory allocations / frees during the process of reading. Additionally, some more specialisation of unpacking routines may result in faster unpack times - All compression routines are implemented by the C Core layer underneath and no longer duplicated - Initial support for "stateless" reading of scanlines has been proposed, allowing multiple threads to read scanlines into different frame buffer objects at the same time. While well tested at the Core level, the C++ api should be considered experimental for this release - Thread dispatch for reading different file types has been made more homogeneous, so is simpler and more consistent - New API for accessing compression types In anticipation of future support for new compression types, there is now a convenience API for mapping between compression type names and the associated enum: - ``getCompressionDescriptionFromId(Compression, std::string&)`` - ``getCompressionIdFromName(const std::string&, Compression&)`` - ``getCompressionNameFromId(Compression, std::string&)`` - ``getCompressionNamesString(const std::string&, std::string&)`` - ``getCompressionNumScanlines(Compression)`` - ``isValidCompression(int)`` - New bin tools: - ``exrmetrics`` - Read an OpenEXR image from infile, write an identical copy to outfile reporting time taken to read/write and file sizes. Useful for benchmarking performance in space and time. - ``exrmanifest`` - Read exr files and print the contents of the embedded manifest. The manifest provides a mapping between integer object identifiers and human-readible strings. See [OpenEXR Deep IDs Specification](https://openexr.com/en/latest/DeepIDsSpecification.html) for more details. - New python bindings. This version introduces a new python API, the ``File`` object, which provides full support for reading and writing all types of ``.exr`` image files, including scanline, tiled, deep, mult-part, multi-view, and multi-resolution images with pixel types of unsigned 32-bit integers and 16- and 32-bit floats. It provides access to pixel data through ``numpy`` arrays, as either one array per channel or with R, G, B, and A interleaved into a single array RGBA array. Previous releases of the openexr python module supported only scanline files. The previous API remains in place for now for backwards compatibility. See [src/wrappers/python/README.md](src/wrappers/python/README.md) for a synopsis.
@comment $NetBSD: PLIST,v 1.28 2024/10/19 11:53:57 wiz Exp $ bin/exr2aces bin/exrenvmap bin/exrheader bin/exrinfo bin/exrmakepreview bin/exrmaketiled bin/exrmanifest bin/exrmetrics bin/exrmultipart bin/exrmultiview bin/exrstdattr include/OpenEXR/Iex.h include/OpenEXR/IexBaseExc.h include/OpenEXR/IexConfig.h include/OpenEXR/IexErrnoExc.h include/OpenEXR/IexExport.h include/OpenEXR/IexForward.h include/OpenEXR/IexMacros.h include/OpenEXR/IexMathExc.h include/OpenEXR/IexMathFloatExc.h include/OpenEXR/IexMathIeeeExc.h include/OpenEXR/IexNamespace.h include/OpenEXR/IexThrowErrnoExc.h include/OpenEXR/IlmThread.h include/OpenEXR/IlmThreadConfig.h include/OpenEXR/IlmThreadExport.h include/OpenEXR/IlmThreadForward.h include/OpenEXR/IlmThreadMutex.h include/OpenEXR/IlmThreadNamespace.h include/OpenEXR/IlmThreadPool.h include/OpenEXR/IlmThreadProcessGroup.h include/OpenEXR/IlmThreadSemaphore.h include/OpenEXR/ImfAcesFile.h include/OpenEXR/ImfArray.h include/OpenEXR/ImfAttribute.h include/OpenEXR/ImfBoxAttribute.h include/OpenEXR/ImfCRgbaFile.h include/OpenEXR/ImfChannelList.h include/OpenEXR/ImfChannelListAttribute.h include/OpenEXR/ImfCheckFile.h include/OpenEXR/ImfChromaticities.h include/OpenEXR/ImfChromaticitiesAttribute.h include/OpenEXR/ImfCompositeDeepScanLine.h include/OpenEXR/ImfCompression.h include/OpenEXR/ImfCompressionAttribute.h include/OpenEXR/ImfCompressor.h include/OpenEXR/ImfContext.h include/OpenEXR/ImfContextInit.h include/OpenEXR/ImfConvert.h include/OpenEXR/ImfDeepCompositing.h include/OpenEXR/ImfDeepFrameBuffer.h include/OpenEXR/ImfDeepImage.h include/OpenEXR/ImfDeepImageChannel.h include/OpenEXR/ImfDeepImageIO.h include/OpenEXR/ImfDeepImageLevel.h include/OpenEXR/ImfDeepImageState.h include/OpenEXR/ImfDeepImageStateAttribute.h include/OpenEXR/ImfDeepScanLineInputFile.h include/OpenEXR/ImfDeepScanLineInputPart.h include/OpenEXR/ImfDeepScanLineOutputFile.h include/OpenEXR/ImfDeepScanLineOutputPart.h include/OpenEXR/ImfDeepTiledInputFile.h include/OpenEXR/ImfDeepTiledInputPart.h include/OpenEXR/ImfDeepTiledOutputFile.h include/OpenEXR/ImfDeepTiledOutputPart.h include/OpenEXR/ImfDoubleAttribute.h include/OpenEXR/ImfEnvmap.h include/OpenEXR/ImfEnvmapAttribute.h include/OpenEXR/ImfExport.h include/OpenEXR/ImfFlatImage.h include/OpenEXR/ImfFlatImageChannel.h include/OpenEXR/ImfFlatImageIO.h include/OpenEXR/ImfFlatImageLevel.h include/OpenEXR/ImfFloatAttribute.h include/OpenEXR/ImfFloatVectorAttribute.h include/OpenEXR/ImfForward.h include/OpenEXR/ImfFrameBuffer.h include/OpenEXR/ImfFramesPerSecond.h include/OpenEXR/ImfGenericInputFile.h include/OpenEXR/ImfGenericOutputFile.h include/OpenEXR/ImfHeader.h include/OpenEXR/ImfHuf.h include/OpenEXR/ImfIDManifest.h include/OpenEXR/ImfIDManifestAttribute.h include/OpenEXR/ImfIO.h include/OpenEXR/ImfImage.h include/OpenEXR/ImfImageChannel.h include/OpenEXR/ImfImageChannelRenaming.h include/OpenEXR/ImfImageDataWindow.h include/OpenEXR/ImfImageIO.h include/OpenEXR/ImfImageLevel.h include/OpenEXR/ImfInputFile.h include/OpenEXR/ImfInputPart.h include/OpenEXR/ImfInt64.h include/OpenEXR/ImfIntAttribute.h include/OpenEXR/ImfKeyCode.h include/OpenEXR/ImfKeyCodeAttribute.h include/OpenEXR/ImfLineOrder.h include/OpenEXR/ImfLineOrderAttribute.h include/OpenEXR/ImfLut.h include/OpenEXR/ImfMatrixAttribute.h include/OpenEXR/ImfMisc.h include/OpenEXR/ImfMultiPartInputFile.h include/OpenEXR/ImfMultiPartOutputFile.h include/OpenEXR/ImfMultiView.h include/OpenEXR/ImfName.h include/OpenEXR/ImfNamespace.h include/OpenEXR/ImfOpaqueAttribute.h include/OpenEXR/ImfOutputFile.h include/OpenEXR/ImfOutputPart.h include/OpenEXR/ImfPartHelper.h include/OpenEXR/ImfPartType.h include/OpenEXR/ImfPixelType.h include/OpenEXR/ImfPreviewImage.h include/OpenEXR/ImfPreviewImageAttribute.h include/OpenEXR/ImfRational.h include/OpenEXR/ImfRationalAttribute.h include/OpenEXR/ImfRgba.h include/OpenEXR/ImfRgbaFile.h include/OpenEXR/ImfRgbaYca.h include/OpenEXR/ImfSampleCountChannel.h include/OpenEXR/ImfStandardAttributes.h include/OpenEXR/ImfStdIO.h include/OpenEXR/ImfStringAttribute.h include/OpenEXR/ImfStringVectorAttribute.h include/OpenEXR/ImfTestFile.h include/OpenEXR/ImfThreading.h include/OpenEXR/ImfTileDescription.h include/OpenEXR/ImfTileDescriptionAttribute.h include/OpenEXR/ImfTiledInputFile.h include/OpenEXR/ImfTiledInputPart.h include/OpenEXR/ImfTiledOutputFile.h include/OpenEXR/ImfTiledOutputPart.h include/OpenEXR/ImfTiledRgbaFile.h include/OpenEXR/ImfTimeCode.h include/OpenEXR/ImfTimeCodeAttribute.h include/OpenEXR/ImfUtilExport.h include/OpenEXR/ImfVecAttribute.h include/OpenEXR/ImfVersion.h include/OpenEXR/ImfWav.h include/OpenEXR/ImfXdr.h include/OpenEXR/OpenEXRConfig.h include/OpenEXR/openexr.h include/OpenEXR/openexr_attr.h include/OpenEXR/openexr_base.h include/OpenEXR/openexr_chunkio.h include/OpenEXR/openexr_coding.h include/OpenEXR/openexr_compression.h include/OpenEXR/openexr_config.h include/OpenEXR/openexr_context.h include/OpenEXR/openexr_debug.h include/OpenEXR/openexr_decode.h include/OpenEXR/openexr_encode.h include/OpenEXR/openexr_errors.h include/OpenEXR/openexr_part.h include/OpenEXR/openexr_std_attr.h include/OpenEXR/openexr_version.h lib/cmake/OpenEXR/OpenEXRConfig.cmake lib/cmake/OpenEXR/OpenEXRConfigVersion.cmake lib/cmake/OpenEXR/OpenEXRTargets-release.cmake lib/cmake/OpenEXR/OpenEXRTargets.cmake lib/libIex-3_3.so lib/libIex-3_3.so.32 lib/libIex-3_3.so.32.${PKGVERSION} lib/libIex.so lib/libIlmThread-3_3.so lib/libIlmThread-3_3.so.32 lib/libIlmThread-3_3.so.32.${PKGVERSION} lib/libIlmThread.so lib/libOpenEXR-3_3.so lib/libOpenEXR-3_3.so.32 lib/libOpenEXR-3_3.so.32.${PKGVERSION} lib/libOpenEXR.so lib/libOpenEXRCore-3_3.so lib/libOpenEXRCore-3_3.so.32 lib/libOpenEXRCore-3_3.so.32.${PKGVERSION} lib/libOpenEXRCore.so lib/libOpenEXRUtil-3_3.so lib/libOpenEXRUtil-3_3.so.32 lib/libOpenEXRUtil-3_3.so.32.${PKGVERSION} lib/libOpenEXRUtil.so lib/pkgconfig/OpenEXR.pc share/doc/OpenEXR/examples/deepExamples.cpp share/doc/OpenEXR/examples/deepExamples.h share/doc/OpenEXR/examples/deepTiledExamples.cpp share/doc/OpenEXR/examples/deepTiledExamples.h share/doc/OpenEXR/examples/drawImage.cpp share/doc/OpenEXR/examples/drawImage.h share/doc/OpenEXR/examples/generalInterfaceExamples.cpp share/doc/OpenEXR/examples/generalInterfaceExamples.h share/doc/OpenEXR/examples/generalInterfaceTiledExamples.cpp share/doc/OpenEXR/examples/generalInterfaceTiledExamples.h share/doc/OpenEXR/examples/lowLevelIoExamples.cpp share/doc/OpenEXR/examples/lowLevelIoExamples.h share/doc/OpenEXR/examples/main.cpp share/doc/OpenEXR/examples/multipartExamples.cpp share/doc/OpenEXR/examples/multipartExamples.h share/doc/OpenEXR/examples/namespaceAlias.h share/doc/OpenEXR/examples/previewImageExamples.cpp share/doc/OpenEXR/examples/previewImageExamples.h share/doc/OpenEXR/examples/rgbaInterfaceExamples.cpp share/doc/OpenEXR/examples/rgbaInterfaceExamples.h share/doc/OpenEXR/examples/rgbaInterfaceTiledExamples.cpp share/doc/OpenEXR/examples/rgbaInterfaceTiledExamples.h