--- a/src/lib/MSPUBCollector.cpp 2026-10-27 15:18:02.834845369 +0100 +++ b/src/lib/MSPUBCollector.cpp 2026-10-27 15:18:02.846770072 +0100 @@ -786,7 +786,10 @@ static_cast(obc.g) / 255.0, librevenge::RVNG_PERCENT); } if (bool(info.m_pictureBrightness)) - graphicsProps.insert("draw:luminance", static_cast(info.m_pictureBrightness.get() + 32768.0) / 65536.0, librevenge::RVNG_PERCENT); + // PubOpener: Publisher stores brightness as a signed value where 0 means + // "unchanged" and 32768 means +100%; ODF's draw:luminance also uses 0% for + // unchanged. The original formula turned "unchanged" into +50%. + graphicsProps.insert("draw:luminance", static_cast(static_cast(info.m_pictureBrightness.get())) / 32768.0, librevenge::RVNG_PERCENT); bool shadowPropsInserted = false; if (bool(info.m_shadow)) {