Hi,

Some Arnold users have been running into problems when resizing 8b or 16b
images using maketx.

This change in ./src/libOpenImageIO/imageio.cpp fixes the issue:

  quantize (float value, int quant_black, int quant_white,
                         int quant_min, int quant_max)
  {
-    value = Imath::lerp (quant_black, quant_white, value);
+    value = Imath::lerp ((float)quant_black, (float)quant_white, value);
     return Imath::clamp ((int)(value + 0.5f), quant_min, quant_max);
  }

Imath::lerp lerps a float value between the int values 0 and 255, but
returns a *truncated* int result. It's this step causes the problem, since
rather than choosing the closest quantization step the code was always
choosing the smaller one.

This was causing white fields to become just almost white after the resize
step in maketx.

The pull request is here:

https://github.com/OpenImageIO/oiio/pull/400

Best,

r
_______________________________________________
Oiio-dev mailing list
[email protected]
http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org

Reply via email to