You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
At present the PNGv2 and earlier specifications allow eXIf to be placed either before or after IDAT (but not both). libpng allows this but doesn't make "after" easy; for any "after" chunk the authoring app has to create a second png_info and png_write the relevant chunks there.
PNGv3 requires the eXIf to be written before IDAT (see the chunk ordering rules section). Attempts to change the spec have failed so it seems likely it will be so.
Traditionally libpng has issued "diagnostics" when things were done which were detectably outside the spec. The conundrum is that there are now two mutually incompatible spec: PNGv2 (and earlier) vs PNGv3. At best libpng can only offer fatherly advice: Warning PNGv3 requires the eXIf chunk to be written before IDAT. Doing anything more extreme (any error) would break existing apps.
Issuing the warning would either go completely unnoticed or spam command line apps. Since we know ImageMagick and GraphicsMagick both do this and are both command line apps they would be so spammed. Meanwhile other GUI apps would continue their blissful ignorance. That's not something I'm prepared to do but it's obviously an option for other people.
So my suggested solution to this issue, making it a non-issue for libpng, is here:
Since that seems to be agreed I've entered this as a non-issue to act as a catchall to those who will surely report bugs against libpng saying that it is not reporting this particular "bug".
An alternative approach is to can-the-warnings; don't spam anyone with warnings unless they ask for it. Warnings require consent.
The text was updated successfully, but these errors were encountered:
At present the PNGv2 and earlier specifications allow eXIf to be placed either before or after IDAT (but not both). libpng allows this but doesn't make "after" easy; for any "after" chunk the authoring app has to create a second png_info and png_write the relevant chunks there.
PNGv3 requires the eXIf to be written before IDAT (see the chunk ordering rules section). Attempts to change the spec have failed so it seems likely it will be so.
Traditionally libpng has issued "diagnostics" when things were done which were detectably outside the spec. The conundrum is that there are now two mutually incompatible spec: PNGv2 (and earlier) vs PNGv3. At best libpng can only offer fatherly advice: Warning PNGv3 requires the eXIf chunk to be written before IDAT. Doing anything more extreme (any error) would break existing apps.
Issuing the warning would either go completely unnoticed or spam command line apps. Since we know ImageMagick and GraphicsMagick both do this and are both command line apps they would be so spammed. Meanwhile other GUI apps would continue their blissful ignorance. That's not something I'm prepared to do but it's obviously an option for other people.
So my suggested solution to this issue, making it a non-issue for libpng, is here:
svgeesus/pngcheck#4 (comment)
Since that seems to be agreed I've entered this as a non-issue to act as a catchall to those who will surely report bugs against libpng saying that it is not reporting this particular "bug".
An alternative approach is to can-the-warnings; don't spam anyone with warnings unless they ask for it. Warnings require consent.
The text was updated successfully, but these errors were encountered: