public void setUserExponent(float userExponent) {
        if (userExponent <= 0.0F) {
            throw new IllegalArgumentException(PropertyUtil.getString("PNGDecodeParam0"));
        }
        this.userExponent = userExponent;
    }
Sets the user exponent to a given value.  The exponent
must be positive.  If not, an
<code>IllegalArgumentException</code> will be thrown.

<p> The output image pixels will be placed through a transformation
of the form:

<pre>
sample = integer_sample / (2^bitdepth - 1.0)
decoding_exponent = user_exponent/(gamma_from_file * display_exponent)
output = sample ^ decoding_exponent
</pre>

where <code>gamma_from_file</code> is the gamma of the file
data, as determined by the <code>gAMA</code>, </code>sRGB</code>,
and/or <code>iCCP</code> chunks, and <code>display_exponent</code>
is the exponent of the intrinsic transfer curve of the display,
generally 2.2.

<p> Input files which do not specify any gamma are assumed to
have a gamma of <code>1/2.2</code>; such images may be displayed
on a CRT with an exponent of 2.2 using the default user
exponent of 1.0.

<p> The user exponent may be used in order to change the
effective gamma of a file.  If a file has a stored gamma of
X, but the decoder believes that the true file gamma is Y,
setting a user exponent of Y/X will produce the same result
as changing the file gamma.

<p> This parameter affects the decoding of all image types.

@throws IllegalArgumentException if <code>userExponent</code> is
negative.
plugins/svg-plugin/batik-codec-fix/src/main/java/org/apache/batik/ext/awt/image/codec/png/PNGDecodeParam.java