OK, I think I understand what's going on here.

Your particular TIFF file (that you sent me) has an embedded ICC color profile 
in the TIFF header. When you try to write it to PNG, OIIO is passing along the 
ICC profile.

libpng has some sort of validity check of any ICC profile you hand it, and this 
one is failing, it looks invalid somehow. I'm not sure why, but nonetheless, 
that is libpng's opinion of it. And it's considering it an error.

I don't know how to fix it other than to strip the ICC profile before trying to 
write the PNG file. From Python, you should be able to do this:

        in_buf_rgba.specmod().erase_attribute("ICCProfile")

... except OOPS, I seem to have an error in the python bindings for 
erase_attribute, I will post a fix for that.

Note also that the error showed up even using oiiotool:

        oiiotool SAND_01_COL_16_bits.tif -o out.png

and is fixed with:

        oiiotool SAND_01_COL_16_bits.tif -eraseattrib ICCProfile  -o out.png

(that does work, so maybe you can use this as a workaround)


> On Aug 2, 2020, at 12:49 PM, Larry Gritz <[email protected]> wrote:
> 
> Aha, the good news is that I can reproduce the problem with the file you sent 
> me! Stay tuned, digging into it...
> 
> 
> 
>> On Jul 31, 2020, at 8:12 AM, Larry Gritz <[email protected] 
>> <mailto:[email protected]>> wrote:
>> 
>> Any TIFF file? Or only particular ones? Can you email me a particular TIFF 
>> file that exhibits this problem so I can try to reproduce?
>> 
>> Also, do you know what the value of the 'bitdepth' variable is in this case?
>> 
>> Which version of OIIO are you using?
>> 
>>      -- lg
>> 
>> 
>>> On Jul 31, 2020, at 2:53 AM, MONSIEUR LIXM <[email protected] 
>>> <mailto:[email protected]>> wrote:
>>> 
>>>  
>>> Hey, thanks for your answer, 
>>> So it is just a message that doesn’t stop the code BUT the written file is 
>>> actually corrupted.(you can’t read it)
>>>  
>>> I didn’t compiled OIIO myself , I am using a Python Wheel made by Fredrik 
>>> Averpil. But this is the only error i had from now, if i convert an exr/hdr 
>>> to png I don’t have any issue. It only pop for tiff to png.
>>>  
>>> Liam.
>>>  
>>>  
>>> ----------------------------------------------------------------------
>>>  
>>> Message: 2
>>> Date: Wed, 29 Jul 2020 10:30:36 -0700
>>> From: Larry Gritz <[email protected] <mailto:[email protected]>>
>>> To: OpenImageIO developers <[email protected] 
>>> <mailto:[email protected]>>
>>> Subject: Re: [Oiio-dev] LibPng error
>>> Message-ID: <[email protected] 
>>> <mailto:[email protected]>>
>>> Content-Type: text/plain; charset="utf-8"
>>>  
>>> Is it actually crashing or doing the wrong thing when writing the file? Or 
>>> are you just getting a stray message printed from inside libpng that is, in 
>>> actuality, a harmless false alarm?
>>>  
>>> Do you know what version of libpng you are using, and are you sure you have 
>>> compiled it in release mode and not some kind of debug mode?
>>>  
>>>  
>>> > On Jul 29, 2020, at 4:50 AM, MONSIEUR LIXM <[email protected] 
>>> > <mailto:[email protected]>> wrote:
>>> >
>>> > Hello,
>>> > I run into an error when i?m trying to convert a .tiff into .png :
>>> > ? libpng error: known incorrect sRGB profile ?
>>> > 
>>> > Can?t find where it comes from , it just seems that the message pop after 
>>> > this last line :
>>> > 
>>> > in_buf_rgba.specmod().attribute("compression", self.compression.lower())
>>> > in_buf_rgba.specmod().attribute("oiio:ColorSpace", "sRGB")  # self.out_cs 
>>> > if not ODT_DICO.get(self.odt) else self.odt)
>>> > bitdepth = self.bitdepth_picker(in_buf_data.nativespec().format, 
>>> > self.out_bitdepth)
>>> > in_buf_rgba.set_write_format(bitdepth)
>>> > 
>>> > here my variable ? bitdepth ? is a string as ? UINT8, UINT16, ? ?
>>> > I suppose that I am missing a metadata information to make it work.
>>> > 
>>> > If you could point me in which direction to go.
>>> > 
>>> > Kindly, Liam Collod.
>>> > 
>>> > 
>> 
>> --
>> Larry Gritz
>> [email protected] <mailto:[email protected]>
>> 
>> 
>> 
>> 
>> _______________________________________________
>> Oiio-dev mailing list
>> [email protected] <mailto:[email protected]>
>> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org 
>> <http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org>
> --
> Larry Gritz
> [email protected] <mailto:[email protected]>
> 
> 
> 
> 
> _______________________________________________
> Oiio-dev mailing list
> [email protected]
> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org

--
Larry Gritz
[email protected]




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

Reply via email to