olavrb Posted March 19, 2020 Share Posted March 19, 2020 (edited) Decode support since v4.2.2 using Microsofts decoder from Microsoft Store is great, thanks for that. 😊  It would be even greater if Paint.NET could embrace this new open codec even further by implementing the ability to create lossy and lossless AVIF files. Not asking for an ETA or anything, but better get the discussion going sooner rather than later.  Since it's about creating a single keyframe, visual quality should be more important than performance/ speed. Don't know enough about AV1 encoders to say which is most fit, but someone else might have the answer to that.  Leaving some inspiration on the topic of AVIF: https://netflixtechblog.com/avif-for-next-generation-image-coding-b1d75675fe4 Edited March 19, 2020 by olavrb Quote Link to comment Share on other sites More sharing options...
toe_head2001 Posted March 19, 2020 Share Posted March 19, 2020 10 minutes ago, olavrb said: Decode support since v4.2.2 using Microsoft's decoder from Microsoft Store is great ...  You hit the nail on the head. Support for AVIF in Paint.NET is dependent on the image codec from Microsoft. The codec doesn't support encoding, therefore Paint.NET doesn't either. Feel free to send your request to Microsoft.   There are a few encoders in existence, so maybe a plugin developer will leverage one of them to implement Paint.NET support. 1 Quote (September 25th, 2023) Sorry about any broken images in my posts. I am aware of the issue. My Gallery |  My Plugin Pack Layman's Guide to CodeLab Link to comment Share on other sites More sharing options...
Rick Brewster Posted March 20, 2020 Share Posted March 20, 2020 I won't be able to dedicate any time for this. However, if someone is willing to make a plugin and release it as open source (not GPL), then I'm open to bundling it. Â I added an AppSetting that permits disabling the built-in AV1 (*.avif) plugin in order to facilitate the future development of said plugin. Otherwise, the built-in handler would always take precedence. Â So if anyone's interested, let me know and I'll get you the details. 1 Quote The Paint.NET Blog: https://blog.getpaint.net/ Donations are always appreciated! https://www.getpaint.net/donate.html Link to comment Share on other sites More sharing options...
null54 Posted March 21, 2020 Share Posted March 21, 2020 On 3/19/2020 at 12:11 PM, toe_head2001 said: There are a few encoders in existence, so maybe a plugin developer will leverage one of them to implement Paint.NET support.  A plugin would also need decoding support, as it would replace the Microsoft decoder that Paint.NET currently uses. This also requires reading/writing the AV1 container file format, and I have not yet found a stable library that can do that.  Libheif currently only has experimental support for AV1. Libavif has good support for reading/writing the avif file format, but the current version will crash on out of memory conditions. 1 Quote Plugin Pack | PSFilterPdn | Content Aware Fill | G'MIC | Paint Shop Pro Filetype | RAW Filetype | WebP Filetype The small increase in performance you get coding in C++ over C# is hardly enough to offset the headache of coding in the C++ language. ~BoltBait  Link to comment Share on other sites More sharing options...
Rick Brewster Posted March 21, 2020 Share Posted March 21, 2020 5 hours ago, null54 said: A plugin would also need decoding support  Actually, maybe not. Since the built-in FileType only supports decoding, the plugin FileType could just implement encoding. Just set FileType::LoadExtensions to an empty list. No need to even employ the AppSetting in that case. Quote The Paint.NET Blog: https://blog.getpaint.net/ Donations are always appreciated! https://www.getpaint.net/donate.html Link to comment Share on other sites More sharing options...
null54 Posted March 30, 2020 Share Posted March 30, 2020 On 3/21/2020 at 12:27 AM, Rick Brewster said: Actually, maybe not. Since the built-in FileType only supports decoding, the plugin FileType could just implement encoding. Just set FileType::LoadExtensions to an empty list.  Loading is required as the AVIF format can use lossy compression, when IsReflexive returns false the SaveConfigDialog always calls the Load method to get a preview image.  After getting my AVIF save code working I discovered that Microsoft's AVIF decoder does not support reading images with transparency, so it looks like I will have to write my own AVIF parsing code if I want to keep the support for saving images with transparency. 😞    Quote Plugin Pack | PSFilterPdn | Content Aware Fill | G'MIC | Paint Shop Pro Filetype | RAW Filetype | WebP Filetype The small increase in performance you get coding in C++ over C# is hardly enough to offset the headache of coding in the C++ language. ~BoltBait  Link to comment Share on other sites More sharing options...
null54 Posted April 10, 2020 Share Posted April 10, 2020 @olavrb  I posted a plugin that allows Paint.NET to save AVIF files:   2 1 Quote Plugin Pack | PSFilterPdn | Content Aware Fill | G'MIC | Paint Shop Pro Filetype | RAW Filetype | WebP Filetype The small increase in performance you get coding in C++ over C# is hardly enough to offset the headache of coding in the C++ language. ~BoltBait  Link to comment Share on other sites More sharing options...
Rick Brewster Posted August 26, 2020 Share Posted August 26, 2020 @null54's plugin will be bundled with the app starting with 4.2.14. You can download a pre-release build right now    Quote The Paint.NET Blog: https://blog.getpaint.net/ Donations are always appreciated! https://www.getpaint.net/donate.html Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.