PNG has been updated for the first time in 22 years — new spec supports HDR and animation
-
This post did not contain any content.
I still don't have an HDR display. Hopefully some VR headset in the near future will support it.
-
It makes sense, right? Is there a way around that when adding new features to a file format?
The alternative is to make another file format for clarity, but it's not really what you want to do.
That depends. Something like HDR should be able to fall back to non-HDR since it largely just adds data, so if the format specifies that extra information is ignored, there's a chance it works fine.
-
I mean, that's already how animated .gifs work. If somehow you manage to load one into a viewer that doesn't support the animation functionality it will at least dutifully display the first frame.
How the hell you would manage to do that in this day and age escapes me, but there were a fair few years in the early '90s where you might run into that sort of thing.
Probably most notably the iOS photos app until like 2014.
Edit: just checked. iOS 11 in 2017 added gif support to photos
I’ll also add, safari supported animated gifs for a long time before that and you could still save them in safari like any other image. But photos would only show the first frame like you said. When 11 came out they played like normal.
-
I mean, that's already how animated .gifs work. If somehow you manage to load one into a viewer that doesn't support the animation functionality it will at least dutifully display the first frame.
How the hell you would manage to do that in this day and age escapes me, but there were a fair few years in the early '90s where you might run into that sort of thing.
One example is piefed unfortunately. Animated gifs as avatar or banner don't animate currently as far as I can tell.
-
I remember the Wild West Web days when it was a toss up seeing if animated Gifs, transparencies in images, or the specific hexadecimal for your personal shade of purple you created would render properly between browsers.
-
One example is piefed unfortunately. Animated gifs as avatar or banner don't animate currently as far as I can tell.
Those are displayed in browser, right? The only reason that would be happening is if Piefeed is recompressing images and their code is not smart enough to identify an animated .gif and act accordingly.
-
Those are displayed in browser, right? The only reason that would be happening is if Piefeed is recompressing images and their code is not smart enough to identify an animated .gif and act accordingly.
Yeah in browser. I should probably open an issue ticket if nobody else noticed yet.
-
Yeah in browser. I should probably open an issue ticket if nobody else noticed yet.
I'll bet you a shiny penny that's what it is. The backend recompresses things to some other format, probably a low bitrate JPEG, in order to save space and/or in case some joker uploads a 90 megabyte uncompressed TIFF image to use as a profile pic, or something.
-
Lies! That gif is sped up 2000%!
-
Lies! That gif is sped up 2000%!
-
But is it backwards compatible with an old version that can't be updated?
I'm probably gonna be massively downvoted for saying the forbidden word but I asked AI to do a summary with references of the forward and backward compatibility of PNG's new version:
!
Based on recent search results, the new PNG specification (Third Edition) and its reference library (libpng) maintain strong backward compatibility while introducing modern features. Here's a detailed compatibility analysis:
1. Backward Compatibility (Viewing Old PNGs with New Lib)
- Full Support: The new libpng (1.6.49+) and PNG Third Edition fully support legacy PNG files. Existing PNGs (conforming to the 2003/2004 spec) will render correctly without changes .
- Implementation Stability: Libpng's API evolution (e.g., hiding
png_struct
/png_info
internals since 1.5.0) ensures older apps usingpng_get_*
/png_set_*
functions remain compatible. Direct struct access, deprecated since 1.4.x, may break in libpng 2.0.x (C99-only) . - Security Enhancements: Critical vulnerabilities (e.g., CVE-2019-7317 in
png_image_free()
) were patched in libpng 1.6.37+, making the new lib safer for decoding old files .
️ 2. Forward Compatibility (Viewing New PNGs with Old Lib)
- Basic Support: Older libpng versions (pre-1.6.37) can decode new PNGs if they avoid new features. Core chunks like
IHDR
orIDAT
remain unchanged . - New Feature Limitations:
- HDR Imagery: Requires libpng 1.6.45+ and apps supporting the
mDCv
chunk. Older libs ignore HDR data, falling back to SDR, which may cause color inaccuracies . - APNG Animation: Officially standardized in PNG Third Edition. Older libs (e.g., <1.6) treat APNG as static images, showing only the first frame .
- EXIF Metadata: New
eXIf
chunks are ignored by legacy decoders, losing metadata like GPS or copyright info .
- HDR Imagery: Requires libpng 1.6.45+ and apps supporting the
- Security Risks: Older libs (e.g., ≤1.6.36) contain unpatched vulnerabilities (e.g., CVE-2015-8126). Parsing malicious new PNGs could exploit these flaws .
Compatibility Summary
Scenario Compatibility Key Considerations Old PNG → New Lib Excellent
Legacy files work flawlessly; security improved. New PNG → Old Lib ️ Partial
Basic rendering works, but HDR/APNG/EXIF ignored. Security risks in unpatched versions. New Features Conditional
Requires updated apps (e.g., Photoshop, browsers) and OS support . 3. Implementation and Industry Adoption
- Broad Support: Major browsers (Chrome, Safari, Firefox), OSs (iOS, macOS), and tools (Photoshop, DaVinci Resolve) already support the new spec .
- Progressive Enhancement: New features like HDR use optional chunks, ensuring graceful degradation in older software .
- Future-Proofing: Work on PNG Fourth Edition (HDR/SDR interoperability) and Fifth Edition (better compression) is underway .
Conclusion
- Upgrade Recommended: New libpng (1.6.49+) ensures security and full compatibility with legacy files.
- Test Workflows: Verify critical tools handle new features (e.g., APNG animation in browsers).
- Fallbacks for Old Systems: For environments stuck with outdated libs, convert new PNGs to legacy format (e.g., strip HDR/APNG) .
For developers: Use
png_get_valid(png_ptr, info_ptr, PNG_INFO_mDCv)
to check HDR support and provide fallbacks .!<
-
That depends. Something like HDR should be able to fall back to non-HDR since it largely just adds data, so if the format specifies that extra information is ignored, there's a chance it works fine.
I see, but the animation feature cant be compatiable no?
-
I'm probably gonna be massively downvoted for saying the forbidden word but I asked AI to do a summary with references of the forward and backward compatibility of PNG's new version:
!
Based on recent search results, the new PNG specification (Third Edition) and its reference library (libpng) maintain strong backward compatibility while introducing modern features. Here's a detailed compatibility analysis:
1. Backward Compatibility (Viewing Old PNGs with New Lib)
- Full Support: The new libpng (1.6.49+) and PNG Third Edition fully support legacy PNG files. Existing PNGs (conforming to the 2003/2004 spec) will render correctly without changes .
- Implementation Stability: Libpng's API evolution (e.g., hiding
png_struct
/png_info
internals since 1.5.0) ensures older apps usingpng_get_*
/png_set_*
functions remain compatible. Direct struct access, deprecated since 1.4.x, may break in libpng 2.0.x (C99-only) . - Security Enhancements: Critical vulnerabilities (e.g., CVE-2019-7317 in
png_image_free()
) were patched in libpng 1.6.37+, making the new lib safer for decoding old files .
️ 2. Forward Compatibility (Viewing New PNGs with Old Lib)
- Basic Support: Older libpng versions (pre-1.6.37) can decode new PNGs if they avoid new features. Core chunks like
IHDR
orIDAT
remain unchanged . - New Feature Limitations:
- HDR Imagery: Requires libpng 1.6.45+ and apps supporting the
mDCv
chunk. Older libs ignore HDR data, falling back to SDR, which may cause color inaccuracies . - APNG Animation: Officially standardized in PNG Third Edition. Older libs (e.g., <1.6) treat APNG as static images, showing only the first frame .
- EXIF Metadata: New
eXIf
chunks are ignored by legacy decoders, losing metadata like GPS or copyright info .
- HDR Imagery: Requires libpng 1.6.45+ and apps supporting the
- Security Risks: Older libs (e.g., ≤1.6.36) contain unpatched vulnerabilities (e.g., CVE-2015-8126). Parsing malicious new PNGs could exploit these flaws .
Compatibility Summary
Scenario Compatibility Key Considerations Old PNG → New Lib Excellent
Legacy files work flawlessly; security improved. New PNG → Old Lib ️ Partial
Basic rendering works, but HDR/APNG/EXIF ignored. Security risks in unpatched versions. New Features Conditional
Requires updated apps (e.g., Photoshop, browsers) and OS support . 3. Implementation and Industry Adoption
- Broad Support: Major browsers (Chrome, Safari, Firefox), OSs (iOS, macOS), and tools (Photoshop, DaVinci Resolve) already support the new spec .
- Progressive Enhancement: New features like HDR use optional chunks, ensuring graceful degradation in older software .
- Future-Proofing: Work on PNG Fourth Edition (HDR/SDR interoperability) and Fifth Edition (better compression) is underway .
Conclusion
- Upgrade Recommended: New libpng (1.6.49+) ensures security and full compatibility with legacy files.
- Test Workflows: Verify critical tools handle new features (e.g., APNG animation in browsers).
- Fallbacks for Old Systems: For environments stuck with outdated libs, convert new PNGs to legacy format (e.g., strip HDR/APNG) .
For developers: Use
png_get_valid(png_ptr, info_ptr, PNG_INFO_mDCv)
to check HDR support and provide fallbacks .!<
downvoters: is it wrong?
-
The current situation with megabytes of JavaScript is pretty bad, but at the time, there was still a fair bit of dialup active, and mobile web was just starting to be a thing - on EDGE and barely 3G. It would take minutes to load.
Also, Steve Jobs had it in for Flash and that’s what ultimately killed it off, I think.
And the crawling of flash websites is awful
-
downvoters: is it wrong?
As you can see it's irrelevant apparently. If it's AI generated it will be downvoted.
-
downvoters: is it wrong?
I don't know. If the poster couldn't be bothered to fact-check, why would I? It is just safer to assume that it can be misinformation.
-
downvoters: is it wrong?
Considering it named CVE-2019-7317, which was fixed in April 2019, it's already hallucinating and not worth reading further into it.
-
This post did not contain any content.
2029 Headline: Worlds largest data breach caused by zero day exploit in popular PNG 3.0 renderer
the payload was reportedly embedded in an animated image of the attacker repeatedly flicking his left testicle
-
Yes, the iPhone did not and never has supported Flash. At least not officially from Apple. There was support, albeit not quite 100% complete, on Windows CE/PocketPC at the time, though. That was one of the things that let me lord it over early iPhone adopters back in the day — my pocket nerd computer could play Homestar Runner videos, and their stupid expensive bauble couldn't. So there.
I still miss using my iPAQ h4350. It still works; might be time to fire up Doom4CE...
-
LOL, I heard that gif. Timed it in my mind, on the money OP.
-
Next-Gen Brain Implants Offer New Hope for Depression: AI and real-time neural feedback could transform treatments
Technology1
-
-
The Guardian and Cambridge University's Department of Computer Science unveil new secure technology to protect sources
Technology1
-
An AI analyst made 30 years of stock picks – and outperformed human investors by a ‘stunning’ degree
Technology1
-
-
-
-