This update improves performance and fixes a lot of small issues.
As usual, you can download the update directly from the website, or you can use the built-in updater via Settings –> Updates –> Check Now.
This is a minor update in the sense that it’s mostly a basket full of fixes and improvements. To me it feels like a larger release though While it doesn’t have any new features, it’s fixing and cleaning out a whole bunch of longstanding things that I’ve wanted to tackle for awhile. I’ve been chipping away at things pretty steadily since the release of 4.0.16, so this really is about 3 full months worth of fixes and improvements! At Microsoft we would’ve called this an “MQ” (Milestone Quality) release.
For instance, the animation timer in version 4.0.16 runs at 120Hz. Always. The Win32 APIs for correctly detecting the monitor’s refresh rate are such a maze. They are archaic, bizarre, and the documentation is barely satisfactory. For this release I finally took the time to figure it all out and get the timer to run at the monitor’s actual refresh rate (it also works if you move the window across monitors with different refresh rates). I’m thinking of writing a blog post about it, in fact, because I don’t think anyone else should have to deal with that ever again. It sounds like it should be so simple, but there are always peculiarities and ambiguities that can trip things up. Not too surprisingly, this improves performance if you’re opening a lot of images: the image strip up at the top of the window uses several animations and it really gets bogged down, but now it’s actually much faster. This should also help battery life for laptop users (it won’t change things much for my new overclocked i9-7900X ).
Also, there are a handful of bugs in Windows and Direct2D that this release is working around. The “Creators Update” for Windows 10 includes the .NET Framework 4.7 and they totally broke the way mouse cursors work for WinForms in high-DPI situations. The result was that 4.0.16 has some really ugly mouse cursors if you’re running at anything other than 100% scaling (aka 96 DPI). So I spent a bunch of time to work around that and write completely custom cursor loading code, which also came with the bonus of providing me with new control over how this whole system works within Paint.NET. The Win32 cursor system is an old, archaic, weird system, one that’s made worse by the various wrappers which are built on top of it (e.g. WinForms or WPF). Now I’ve got the ability to provide high resolution and high color cursors. I can do pretty much anything with them now, and would like to upgrade the Win95-era cursors in a future release.
Also, I’ve implemented a “portable mode” that I’ll be describing in a follow-up post. It redirects the app’s settings into a local JSON file instead of having them in the registry. I know there are at least a handful of people who’ve been hoping for something like this for a long time – now your USB key can carry your personal settings with you from computer to computer.
Next up for Paint.NET: Windows Store! Once that’s done, I’m planning to upgrade the brushes system. It desperately needs more built-in brush shapes, as well as the ability to install custom ones.
Anyway, without further ado, here’s the change list!
- Added: "Fluid mouse input" option in Settings -> UI -> Troubleshooting. If you see major glitches while drawing, try disabling this.
- Improved: Default brush size, font size, and corner radius size now scales with major DPI scaling levels (brush size of 2 at 100% scaling, brush size of 4 at 200% scaling, etc.)
- Improved: Default image size now scales with major DPI scaling levels (800×600 at 100%, 1600×1200 at 200%, etc.)
- Improved performance and drawing latency by removing explicit calls to System.GC.Collect() except when low memory conditions are encountered
- Improved performance by greatly reducing object allocation amplification by reducing the concurrency level when using ConcurrentDictionary, and by removing WeakReference allocations in favor of direct GCHandle usage
- Improved: Performance and battery usage by ensuring animations always run at the monitor’s actual refresh rate
- Improved (reduced) CPU usage when moving the mouse around the canvas
- Removed: "Hold Ctrl to hide handle" from the Text tool because it was not useful and caused lots of confusion
- Fixed: Various high-DPI fixes, including horrible looking mouse cursors caused by a bug in the latest .NET WinForms update
- Fixed: Gradient tool no longer applies dithering "outside" of the gradient (in areas that should have a solid color)
- Fixed: Very slow performance opening the Effects menu when lots of plugins are installed after installing the Windows 10 Creators Update
- Fixed: When cropping and then performing an undo, the scroll position was totally wrong
- Fixed a rendering glitch in the Save Configuration dialog (it would "wiggle")
- Fixed: At certain brush sizes, the brush indicator on the canvas had a visual glitch in it due to a bug in Direct2D
- Fixed: Text tool buttons for Bold, Italics, Underline were not localized for a few languages
- Fixed a rare crash in the taskbar thumbnails
- Fixed: Drawing with an aliased brush and opaque color (alpha=255) sometimes resulted in non-opaque pixels due to a bug in Direct2D’s ID2D1RenderTarget::FillOpacityMask
- Fixed: "Olden" effect should no longer cause crashes (it still has some rendering artifacts due to its multithreading problems, however)
- New: Portable mode can be enabled via a setting in the .exe.config, which will redirect app settings into a local JSON file (see blog/forum post for details)
Enjoy!
The update checker says there’s no new version available.
Yup — give it a few minutes 🙂 Updater stuff is still uploading
Dear Rick, Thank you so much for such an excellent programme, I’ve had a very simple idea for paint.net for years but never bothered to suggest it , but here it is.
Could you possibly make it so the + – keys step up and down the “magic wand” selection, this would be very easy to apply and make the tool much easier and more accurate to use,
Thanks again, paint.net is fab 🙂
Matt Marsden
Author of ‘A Brief History of Timelessness’, http://www.timelessness.co.uk
>
As usual, great job, and thank you for the hard work!
Thank You..
Very minor point: The newly created desktop shortcut is titled “paint.net”. I think the prior version 4.0.16 was titled “Paint.NET” if I recall correctly. Is this change intentional for Microsoft Store reasons?
It’s been that way for 3 years since the 4.0 release. It’s intentional.
Is it possible to add some functionality to allow Text to be editable after it’s been “committed”? Like Photoshop does?
Possible? Yes 🙂 It’s a large amount of work that I will hopefully get to, but it’ll probably be a long time.
+1 I really really want this. This is like my number one request now that I think of it. Currently I create a new layer and manipulate the text on that, but it is harder to do that than this would be. This would be much easier to do.
I’ve found no free graphics program does everything, but each can do something well the others cannot easily do. I’m certainly no graphics expert either, but with IrfanView I can easily add text to an image, with my choice of font, style, color, and size, and position it where I wish. Its preview function lets you see the result without committing to it. Under Windows 10 Home I can do pretty much what I envision with paint.net, GIMP, and/or IrfanView. None of these 3 programs can easily do soft stacking for example, but I do not need the function.
Thanks for the software. I am no “graphics designer”, however Paint.net is perfect for use by me. I know you must put a lot of work into this software ( computers are stupid. You have to tell them everything ) . But I am here to let you know I ♥ Paint.net !
Thanks so much for this!
I know I’ve asked this in the previous blog entry too, but is pressure sensitivity planned for a future feature update?
Wonderful program. Have donated several times. Will continue. Would recommend a spray can or airbrush feature. Would be so helpful. Thanks.
Still hoping for a way to quickly save all opened files in a single folder. there is nothing more important than saving your work. Especially when your laptop batteries are running out and you have a lot of tabs open.
Perhaps a Save Session or Save Project that allows you to resume with the windows and everything placed in the same order and position?
Yea, I know, “Lets make more work for Rick” 😉
Nice, thanks for the work
Looking forward to that blog post about WinApi Monitor Refresh Rate stuff!
done!
1. it never succeeds to update on my machine, always looking for something in staging folder and failing to find it.
2. can you do anything about loading times? the first time after system boot it’s awful. rich seniors from microsoft with i9 and ssds may never notice it, but us peasants with hdds and le old i7-2600 really suffer.
1. You can check out the Troubleshooting section of the forum. It has a few pinned posts that list some common solutions (you probably one the “Windows Installer Cleanup” one). And, please feel free to create a new post and ask for help. https://forums.getpaint.net/index.php?/forum/3-troubleshooting-bug-reports/
2. Upgrading to an SSD — *any* SSD, in fact — will be the biggest performance booster for all of your apps and everything you do on your computer. I really really really really really really recommend doing that. However, you probably already know that. Your CPU is still very fast and perfectly capable of giving you great performance (and you probably already know that too).
It’s really hard to improve performance with HDDs, especially for that first app launch. A lot of Paint.NET’s startup in this case is dependent on the .NET Framework and all the disk I/O that it has to do in order to load its code. HDDs are just really slow for this and I don’t have a good solution other than the age old “wive’s tale” of defragmenting your hard drive (which Windows does automatically anyway). You can also make sure Superfetch is enabled. You could even put a shortcut to Paint.NET in your Startup folder (which makes it launch at startup as the name implies), but that will also just make startup take longer, and it doesn’t really help unless you always use Paint.NET soon after startup.
I’m sorry but there’s really not much I can do about this. The solution really is for everyone to upgrade to an SSD, something that is just naturally happening over time anyway. It’s like the transition from dial-up to broadband … it’s a problem that’s solving itself. Of course, that’s not encouraging for *you* as an HDD owner. But, someday your hard drive will die. That’s a fact. And, SSDs will be really really cheap by then (they already are). So, maybe that’s actually an event to look forward to now?
i am a long time paint.net user and this answer saddens me a lot.
my whole paint.net folder is 20MB with tons of plugins. how come you can’t simply read everything to RAM in a few milliseconds and then do stuff there? that’s not really an excuse for someone at microsoft… HDDs are not that slow after all. and if you’re dumping gigabytes onto the hard drive I’d question your methods… the point of this app was to be fast and easy, now it boots up like photoshop, really.
as of the “missing msi” I’ve seen these threads for a few past years. couldn’t you come up with some other way to update it? why do you rely on a file that *may* end up being removed from a user’s system?
“how come you can’t simply read everything to RAM in a few milliseconds?”
Because that’s not the way any of it works. If it really were that easy, computers and apps would be a lot faster all the time. One of the reasons is just the laws of physics. HDDs are SLOW, especially with contested I/O patterns like you see at startup, or when the things that are being loaded are scattered across the hard drive (I mean physically, which isn’t the same as the logical structure you see in the file system), which is the case with an application like Paint.NET that depends on a framework like .NET (which isn’t itself in that 20MB folder of yours).
“with tons of plugins”
That is also something that causes long startup times. If you install lots of plugins, then startup will take a lot longer because it’s loading all of the plugins that you want. If you want startup time to be faster, then remove plugins. You can do a quick experiment to see how much faster startup would be without plugins by renaming your Effects, FileTypes, and Shapes folders to Effects.bak, FileTypes.bak, and Shapes.bak, and then launching the app.
“couldn’t you come up with some other way to update it?”
This is a very complicated subject. The Windows Installer system is fraught with all sorts of problems. It’s just not a reliable system and the “Staging” folder thing is something I found that made it a lot more reliable. It wasn’t bullet proof though.
Windows Store will be the new reliable way to update and service applications. Yes you’ll probably complain that it requires Windows 10. Well, guess what, Microsoft came up with a solution for this and that’s what it is. You asked for a solution and that’s what it is.
So if you want things to be faster or more reliable then you’re going to have to take some responsibility for it as well. I’ve given you several ways forward: you can upgrade to an SSD, which I guarantee you’ll love for more than just the sake of Paint.NET. You can remove plugins. You can upgrade to Windows 10 and use the Windows Store version of Paint.NET (once it’s available), or you can even go to the trouble of working through the pinned posts in the Troubleshooting section of the forum which should solve the MSI glitch you’re seeing. Sometimes *you* have to do something as well, not just me. I already do and have done A LOT with respect to developing and releasing Paint.NET (it’s a huge project). I’m only asking you to pitch in a relatively tiny amount.
Line selection! Please, please, please!
I have absolutely no complaints about paint.net I have been using it in its various releases’ for a number of years. It does exactly what I need it to do with the minimum of fuss and bother.
Thank you very much Rick for all the work and brain sweat you put into this !
Dear authors,
I love your software and I use it everyday, it is so fast, intuitive and accessible. I can not wait to be able to use healing brushes (known in similarly software as a tool 😉 than you would be a game changer!
Regards,
Wojtek
Thank you so much for all the hard work!
paint.net has always been my go-to software for simple editing and graphics. It’s amazing to see it still getting support!
Dear authors,
in June 2017 I was working with paint.net, using Windows 8.1, when I got the hint, that there was an update for paint.net. I clicked this and after installation my pc got damaged. It was that slow, that it took minutes to write a simple word using Word 2010 and Outlook 2010 did`nt work any more. Those failures were corrected by the Windows scan and repair. The connections from desktop to programs still do not work: some icons work, like that of Firefox, others do not, like “my system” or “this pc”. When I click an icon the image of the program comes up for less then a second, than the screen turns dark blue afterwards. Some icons on the desktop can open a program, but when I start working, I see the hint, that there is a failure and that the program does not react any more.
Was this a malware or a virus? Has this problem been reported by now? Could you help me in a way that I can keep the different software-programs that I have bought and downloaded? (Sorry for my german english :-))
Best regards
Lars
Interesting improvements.
I just wanted to say THANK YOU for all your time and effort working on this! I love paint.NET. It is appreciated.
A blog post about the struggle with refresh rates and timers would be really interesting and appreciated! 😉
done!
Very interesting! Thank you so much! 🙂
Thank you for great program! It would be very appreciated if you’ve made Photoshop-style cropping behavior in your future release. With frame rotation and scaling on-the-fly. That is mostly one function that keeps me from Photoshop abandonment.
Thank for paint.net ~ I just LOVE it! It has filled many lonely hours for me, helped me be more effective and creative at work, and given me something to think about! It’s terrific! Thank you again!
Dude! Thanks a lot for your work! I´m using paint.net when I have a chance to grab a windows based computer. Never find such a nice and easy tool to do hard work in no time like with your app! Thanks a lot!
think you a lot.
chokran
The email I received today about updating to 4.0.17 confuses me. I’ve been running that desktop version since 2017-07-21 and no update is available. Was this email sent for the Windows Store paint.net?
I’m not sure which e-mail you’re referring to. I don’t have any recent e-mails from you (Leo Feret) so I don’t know what you mean by “that desktop version.” Your best bet would be to reply to the e-mail with your question(s) in order to maintain that context.
Just want to thank you for your hardwork over the years. I’ve been using Paint.net for too long without saying that. I have more “powerful” tools, but nothing compares to the simplicity that is Paint.net.
Paint.net is fantastic! It’s come a long way… appreciate all the time and effort invested. One question: why no vectors? I’ve used Macromedia Fireworks for years. A day without vector tools is like a day without sunshine.
You can use InkScape for vectors. Paint.NET is geared for bitmap/raster editing. Adding vectors would be like designing and implementing an entirely new application! Not a small feature by any means, and also doesn’t fit into what Paint.NET is focused on. (not that it wouldn’t be useful …)