diff --git a/src/openexr.imageio/exroutput.cpp b/src/openexr.imageio/exroutput.cpp index e89cb0a528..b644b80209 100644 --- a/src/openexr.imageio/exroutput.cpp +++ b/src/openexr.imageio/exroutput.cpp @@ -22,9 +22,6 @@ #include #include "exr_pvt.h" -#define OPENEXR_CODED_VERSION \ - (OPENEXR_VERSION_MAJOR * 10000 + OPENEXR_VERSION_MINOR * 100 \ - + OPENEXR_VERSION_PATCH) // The way that OpenEXR uses dynamic casting for attributes requires // temporarily suspending "hidden" symbol visibility mode. @@ -734,16 +731,20 @@ OpenEXROutput::spec_to_header(ImageSpec& spec, int subimage, || !ispow2(spec.tile_width) || !ispow2(spec.tile_height))) { comp = "zip"; } - if (Strutil::istarts_with(comp, "dwa")) { - spec.attribute("openexr:dwaCompressionLevel", - qual > 0 ? float(qual) : 45.0f); - } spec.attribute("compression", comp); #if OPENEXR_CODED_VERSION >= 30103 if (Strutil::istarts_with(comp, "zip")) { header.zipCompressionLevel() = (qual >= 1 && qual <= 9) ? qual : 4; } #endif + if (Strutil::istarts_with(comp, "dwa") && qual > 0) { + spec.attribute("openexr:dwaCompressionLevel", float(qual)); + // qual > 0 ? float(qual) : 45.0f); +#if OPENEXR_CODED_VERSION >= 30103 + // header.dwaCompressionLevel() = qual > 0 ? float(qual) : 45.0f; + header.dwaCompressionLevel() = float(qual); +#endif + } // Default to increasingY line order if (!spec.find_attribute("openexr:lineOrder"))