null54 Posted August 5, 2020 Share Posted August 5, 2020 This plugin allows HEIC images to be loaded and saved with transparency, and adds a few more options when saving. It replaces Paint.NET's built-in HEIC support. This plugin may produce smaller files than Microsoft's encoder for grayscale images. For most color images Microsoft's encoder is faster and produces smaller files. Compatibility: 5.0.13+ Installation: 1. Close Paint.NET. 2. Place HeicFileTypePlus.dll, HeicFileTypePlusIO_ARM64.dll and HeicFileTypePlusIO_x64.dll in the Paint.NET FileTypes folder which is usually located in one the following locations depending on the Paint.NET version you have installed. Classic: C:\Program Files\Paint.NET\FileTypes Microsoft Store: Documents\paint.net App Files\FileTypes Portable: <Paint.NET folder>\FileTypes 3. Disable the built-in Paint.NET HEIC support Classic / Microsoft Store Open the Windows Run dialog (Start > Run or Windows Key + R) Type paintdotnet:/set:FileTypes/BuiltInHEICFileTypeEnabled=false and press the Enter key Portable Open a command prompt in the folder that Paint.NET is located in. Type paintdotnet.exe /set:FileTypes/BuiltInHEICFileTypeEnabled=false and press the Enter key 4 Restart Paint.NET. Download: HeicFileTypePlus.zip Source Code: https://github.com/0xC0000054/pdn-heicfiletype-plus 4 1 3 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...
Seerose Posted August 6, 2020 Share Posted August 6, 2020 ❤️ @null54! Thank you for your effort. Quote Live as if you were to die tomorrow. Learn as if you were to live forever. Gandhi Link to comment Share on other sites More sharing options...
null54 Posted August 28, 2020 Author Share Posted August 28, 2020 Release version 1.0.1. Changes: Allow the chroma subsampling mode to be configured when saving (4:2:0, 4:2:2 or 4:4:4) Add forum and GitHub links to the UI Upgraded to libheif version 1.8.0 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...
null54 Posted September 14, 2020 Author Share Posted September 14, 2020 Release version 1.0.2. Changes: Fixed an issue with the error handling code. Fixed a typo in the assembly description 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 September 29, 2020 Author Share Posted September 29, 2020 Release version 1.0.3. Changes: Upgraded to libheif version 1.9.1 Fixed an issue when saving YUV 4:2:2 and YUV 4:4:4 images 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 November 3, 2020 Author Share Posted November 3, 2020 Release version 1.0.4. Changes: Upgraded libde265 to version 1.0.8. Added support for saving lossless RGB images. 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...
skrowl Posted February 3, 2021 Share Posted February 3, 2021 This plugin solved the issue I was having where HEIC photos taken on my Samsung Galaxy S20 Ultra weren't able to be opened in Paint.NET (or the built in Windows Photos app, even after installing the HEIF extensions from Windows store)! Thank you! (This plugin should probably replace the default HEIC support, in my opinion. The built in HEIC support is broken.) Quote Link to comment Share on other sites More sharing options...
null54 Posted February 4, 2021 Author Share Posted February 4, 2021 9 hours ago, skrowl said: (This plugin should probably replace the default HEIC support, in my opinion. The built in HEIC support is broken.) Unfortunately, that will most likely never happen due to the licensing royalties that HEVC has. 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 October 26, 2021 Author Share Posted October 26, 2021 Release version 1.0.5. Changes: Added support for the ARM64 builds of Paint.NET. Updated libheif to version 1.12. Fixed a compatibility issue with Paint.NET 4.3. 1 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...
Kelderek Posted November 1, 2021 Share Posted November 1, 2021 This plugin worked great for me, thanks! My only remaining issue is that the command to disable the built-in HEIC codec is user specific. Is there a way to set it for all users? I saw that it created a registry entry in the HKCU hive, but trying to set it at the same place in HKLM didn't work. Quote Link to comment Share on other sites More sharing options...
null54 Posted November 1, 2021 Author Share Posted November 1, 2021 2 hours ago, Kelderek said: Is there a way to set it for all users? Not currently. 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 November 1, 2021 Share Posted November 1, 2021 3 hours ago, Kelderek said: This plugin worked great for me, thanks! My only remaining issue is that the command to disable the built-in HEIC codec is user specific. Is there a way to set it for all users? I saw that it created a registry entry in the HKCU hive, but trying to set it at the same place in HKLM didn't work. You're trying to activate this plugin for all users of the system, I take it? Can you give us some more detail on your scenario? I believe I made the "scope" for this setting CurrentUser as a conservative test-the-waters kind of thing. I'm open to expanding it. (The 4 scoping values are CurrentUser, SystemWide, CurrentUserWithSystemWideOverride, and SystemWideWithCurrentUserOverride) 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...
Kelderek Posted November 2, 2021 Share Posted November 2, 2021 4 hours ago, Rick Brewster said: You're trying to activate this plugin for all users of the system, I take it? Can you give us some more detail on your scenario? I believe I made the "scope" for this setting CurrentUser as a conservative test-the-waters kind of thing. I'm open to expanding it. (The 4 scoping values are CurrentUser, SystemWide, CurrentUserWithSystemWideOverride, and SystemWideWithCurrentUserOverride) I am the IT guy for a small company and Paint.NET + a plugin pack that I compiled get deployed to our systems automatically. They get deployed as a different account from the primary computer user, so a per user scoping would mean needing an extra login script or special instructions if someone needs HEIC to use this plugin. From the scopes you listed, I think SystemWideWithCurrentUserOverride would make the most sense because plugins aren't user specific. If someone needed built-in HEIC support for some reason, they could still override the system default. Quote Link to comment Share on other sites More sharing options...
Rick Brewster Posted November 2, 2021 Share Posted November 2, 2021 Okay that makes sense to me, I can make the change for the upcoming 4.3.3 update (which will also remove /createMsi but add downloadable MSI packages, btw). You can, of course, do user-specific plugins by placing them into `Documents/paint.net App Files/{Effects, FileTypes, Shapes}` but that has the same complications around extra login scripts. You may also be interested in the Plugins/AllowLoadingPluginsFromUserLocations setting to disallow the ability for users to install their own plugins into documents. Set it to "false" (string). I put that in a long time ago but never publicly documented it. It is scoped as CurrentUserWithSystemWideOverride. 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...
Kelderek Posted November 2, 2021 Share Posted November 2, 2021 Thanks for putting in the change! Does that mean there will be an HKLM registry entry instead of the HKCU one? It is easier for me to deal with registry entries than the paintdotnet:/set:FileTypes/BuiltInHEICFileTypeEnabled=false command, as a side effect of the command is that Paint.NET is left running under the deployment user's context. Good to know about the user specific plugins! I may use that when I help people on their personal computers so they aren't modifying things in Program Files. Also the command to block it is very good to know so I can prevent them from running arbitrary plugin code on work systems. Does that go at HKLM\Software\paint.net? Quote Link to comment Share on other sites More sharing options...
null54 Posted November 2, 2021 Author Share Posted November 2, 2021 11 minutes ago, Kelderek said: Does that mean there will be an HKLM registry entry instead of the HKCU one? The HKLM hive will be used if the value is not found in the HKCU hive. 11 minutes ago, Kelderek said: Also the command to block it is very good to know so I can prevent them from running arbitrary plugin code on work systems. Does that go at HKLM\Software\paint.net? Yes. 2 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...
lynxster4 Posted November 19, 2021 Share Posted November 19, 2021 @null54 Getting an error message after updating to beta version of PDN. Version 1.0.4.0 of HeicFileTypePlusPlugin not compatible with this version of paint.net. It says a mandatory update is available, but it's the same version of plugin. Thanks. Quote My Art Gallery | My Shape Packs | ShapeMaker Mini Tut | Air Bubble Stained Glass Chrome Text with Reflections | Porcelain Text w/ Variegated Coloring | Realistic Knit PatternOpalescent Stained Glass | Frosted Snowman Cookie | Leather Texture | Plastic Text | Silk Embroidery Visit my Personal Website "Never, ever lose your sense of humor - you'll live longer" Link to comment Share on other sites More sharing options...
null54 Posted November 19, 2021 Author Share Posted November 19, 2021 1 hour ago, lynxster4 said: It says a mandatory update is available, but it's the same version of plugin. Fixed, I had accidentally bundled a plugin DLL with the wrong version number. 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 November 20, 2021 Share Posted November 20, 2021 On 11/2/2021 at 6:14 AM, Kelderek said: Thanks for putting in the change! Does that mean there will be an HKLM registry entry instead of the HKCU one? It is easier for me to deal with registry entries than the paintdotnet:/set:FileTypes/BuiltInHEICFileTypeEnabled=false command, as a side effect of the command is that Paint.NET is left running under the deployment user's context. Good to know about the user specific plugins! I may use that when I help people on their personal computers so they aren't modifying things in Program Files. Also the command to block it is very good to know so I can prevent them from running arbitrary plugin code on work systems. Does that go at HKLM\Software\paint.net? BTW you can try this out with the beta release of 4.3.3, 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...
Kelderek Posted November 23, 2021 Share Posted November 23, 2021 (edited) It is fully working for me with PDN 4.3.3, the latest version of this plugin, and moving the FileTypes registry entry from HKCU to the HKLM hive. Now every user on the computer can open HEIC files with no extra steps necessary. Thanks, everyone! Edited November 23, 2021 by Kelderek 1 Quote Link to comment Share on other sites More sharing options...
churchlady Posted December 20, 2021 Share Posted December 20, 2021 Thank you this worked like a charm Quote Link to comment Share on other sites More sharing options...
PFlem Posted December 30, 2021 Share Posted December 30, 2021 Still getting an error trying to open a HEIC file. Running version 4.3.4 Quote Link to comment Share on other sites More sharing options...
Rick Brewster Posted December 30, 2021 Share Posted December 30, 2021 4 hours ago, PFlem said: Still getting an error trying to open a HEIC file. Running version 4.3.4 Please share the error with us, otherwise we have no chance of what's going on 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...
PFlem Posted December 31, 2021 Share Posted December 31, 2021 Here is the beginning of the error. It is saying that the HEIC file is invalid, but others were able to convert the file to a JPG and view it that way. Exception: System.FormatException: The HEIC file is invalid. at HeicFileTypePlus.HeicNative.HandleReadError(Status status) at HeicFileTypePlus.HeicFile.Load(Stream input) at PaintDotNet.FileType.Load(Stream input) in D:\src\pdn\src_4_3_x\Data\FileType.cs:line 498 at PaintDotNet.Functional.Func.Eval[T1,TRet](Func`2 f, T1 arg1) in D:\src\pdn\src_4_3_x\Base\Functional\Func.cs:line 158 Quote Link to comment Share on other sites More sharing options...
null54 Posted December 31, 2021 Author Share Posted December 31, 2021 1 hour ago, PFlem said: It is saying that the HEIC file is invalid, but others were able to convert the file to a JPG and view it that way. Please share the file so this can be investigated. 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...
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.