POV-Ray : Newsgroups : povray.bugreports : Grayscale PNG read error in POV-Ray 3.5 Server Time
22 Dec 2024 09:27:04 EST (-0500)
  Grayscale PNG read error in POV-Ray 3.5 (Message 1 to 2 of 2)  
From: Ray Gardener
Subject: Grayscale PNG read error in POV-Ray 3.5
Date: 7 Apr 2003 06:27:42
Message: <3e91529e$1@news.povray.org>
I am able to reliably reproduce a bug in POV-Ray 3.5
which affects Win32 and probably on other platforms.

Loaded imagemaps using grayscale PNG files
of 4 bpp or less appear near-black.

The bug is in the module png_pov.cpp,
function Read_Png_Image(), near line 1550.
The problem is that the colormap's RGB color
channels are mapped directly to palette indices,
which is okay for 8-bit files but not for
lower bit depths, since the palette indices
don't go all the way up to 255. e.g., A 4-bit file
will have a maximum white color of rgb(15,15,15)
instead of rgb(255,255,255).

The code fragment

    for (index = 0; index < cmap_len; index++)
    {
      cmap[index].Red =
      cmap[index].Green =
      cmap[index].Blue = index;
      cmap[index].Filter = 0;
      cmap[index].Transmit = 0;
    }

should read

    for (index = 0; index < cmap_len; index++)
    {
      cmap[index].Red =
      cmap[index].Green =
      cmap[index].Blue = index * 255 / (cmap_len - 1);
      cmap[index].Filter = 0;
      cmap[index].Transmit = 0;
    }


Ray Gardener
Daylon Graphics Ltd.
http://www.daylongraphics.com/products/leveller/
"Heightfield modeling perfected"


Post a reply to this message

From: Thorsten Froehlich
Subject: Re: Grayscale PNG read error in POV-Ray 3.5
Date: 21 Apr 2003 09:24:12
Message: <3ea3f0fc$1@news.povray.org>
In article <3e91529e$1@news.povray.org> , "Ray Gardener" 
<ray### [at] daylongraphicscom> wrote:

> I am able to reliably reproduce a bug in POV-Ray 3.5
> which affects Win32 and probably on other platforms.
>
> Loaded imagemaps using grayscale PNG files
> of 4 bpp or less appear near-black.
>
> The bug is in the module png_pov.cpp,
> function Read_Png_Image(), near line 1550.
> The problem is that the colormap's RGB color
> channels are mapped directly to palette indices,
> which is okay for 8-bit files but not for
> lower bit depths, since the palette indices
> don't go all the way up to 255. e.g., A 4-bit file
> will have a maximum white color of rgb(15,15,15)
> instead of rgb(255,255,255).

Will be fixed in POV-Ray 3.51.

    Thorsten



____________________________________________________
Thorsten Froehlich, Duisburg, Germany
e-mail: tho### [at] trfde

Visit POV-Ray on the web: http://mac.povray.org


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.