Rick Brewster

What's next for Paint.NET in 2019? (x-post from blog)

Recommended Posts

(This is cross-posted from the Paint.NET blog ... I may get more discussion out of this over here on the forum though :))

 

It's been a little over 9 months since I left Facebook, and since then I've been hard at work on Paint.NET. (There were two primary reasons for me leaving Facebook: 1) it was way too exhausting, which is also part of the reason I haven't been blogging much for several years, and 2) I really just wanted to focus on Paint.NET for awhile.)

 

2018

Looking back on 2018, a lot was accomplished! In the 4.0.20 update back in January I shipped a dark theme, which I originally didn't see the point of but now I can't imagine the app without it. After that there was mostly radio silence until I released 4.1 in September. That update had quite a lot of infrastructure changes in it, both in the low-level bowels of my COM interop system (long story…), and in the addition of GPU-powered effects (which was powered using Direct2D, which was dependent on the aforementioned COM stuff). Since then, the 4.1.1 through 4.1.5 updates have focused on fixing a bunch of bugs that have popped up (which has been frustrating), and improving performance (notably for effect loading at startup, and canvas rendering when zoomed out).

 

2019

What's next though? Well, I'll start by quoting a recent article over at HostingAdvice that I did a small interview for:

 

After 10 years of working at Microsoft and several years at Facebook, Rick decided to focus exclusively on Paint.NET this year. “That means I’ve gone from having 20% of my time available to about 80%,” he said.
 

“I’m going to be spending a lot of time preparing infrastructure for the next big wave of features going into Paint.NET.”
 

To that end, Rick hopes to enhance the user interface with more attractive icons, allow users to install custom brushes, and introduce pen and pressure sensitivity for tablets.
 

With that, let's start talking directly about what I'm planning and hoping to release in 2019:

 

App Icons and High-DPI

Paint.NET's UI is quite functional for high DPI systems without any of the layout problems or truncated text elements that have plagued Windows apps since, well, forever. However, that's no longer good enough in 2019. For starters, the app icons are all authored for 96 DPI (aka "100% scaling"), and look blurry at higher DPI settings. Upgrading all of that is a project I've just started working on, and is what the aforementioned article refers to as "more attractive icons."

 

Beyond that, newer versions of Windows support dynamic scaling (changing the scaling without logging out and then in again), and per-monitor DPI. Right now if you change the system DPI while Paint.NET is open, it won't look very good. Similarly if you move the app over to a monitor with a different DPI setting. This also affects use of Remote Desktop where the remote system's DPI is different, and use of laptop docking stations when the external monitor's DPI is different. These all make using Paint.NET in modern scenarios rather clumsy and frustrating. For instance: when I use my laptop with a 4K screen to remote into my desktop with a 2K screen, it sucks that I have to restart Paint.NET so it doesn't look blurry.

 

Windows gets a bad rep for having bad high-DPI scaling, and part of the responsibility for fixing that reputation lies with application developers like me. Refreshing the app icons is the next thing I'll be working on, and then I'll upgrade the infrastructure for dynamic DPI (probably over the course of several updates). Thankfully these projects seem to be the “final frontier” for High DPI: once they’re done we can finally bury the hatchet on High DPI bugs.

 

.NET Core 3.0

Richard Lander's post earlier in the year about .NET Core 3.0 shipping with WinForms and WPF really made my day. The more recent announcement that both WinForms and WPF would be open sourced has fulfilled a long-time dream of mine. I can't wait to fork the ToolStrip classes and migrate them off of GDI+ :) (this should be a good performance win)

 

It's clear that, in the long-term, Paint.NET needs to migrate over to .NET Core. That's where all of the improvements and bug fixes are being made, and it's obvious that the .NET Framework is now in maintenance mode. On the engineering side this is mostly a packaging and deployment puzzle of balancing download size amongst several other variables. My initial estimations shows that the download size for Paint.NET could balloon from ~7.5MB (today) to north of 40MB if .NET Core is packaged "locally". That's a big sticker shock … but it may just be necessary.

 

And, for those who're interested: the move to .NET Core will finally enable a truly portable version of Paint.NET since .NET Core can just be bundled into the local app directory. I've been slowly moving towards "app local deployment" of dependencies anyway; e.g. for the v4.1 release I got fed up with the Visual C++ runtime's installation issues and moved them to be "app local". The security arguments no longer convince me that it's worth the massive hassles for both myself and end-users. The straw that broke the camel's back (so to speak) on this was when the Surface Go shipped with an incorrectly signed version of the Visual C++ runtimes which then prevented Paint.NET from loading at all (remember: the Surface Go runs Windows 10 "S" by default and can only run Store apps).

 

Improved DDS support

The DDS support in Paint.NET works well, but hasn't been updated to the newer DDS formats that have become more popular. Nicholas Hayes, aka "null54" on the forum, has written a plugin that provides better DDS support (forum link, and github link). This is a no-brainer for integration into Paint.NET so that everyone can benefit from these improvements (and without having to rename files to have a .dds2 extension, yuck!). Paint.NET is used a lot in the gaming biz, so this should help out a large audience of developers in this arena.

 

Brushes and Pressure Sensitivity

This is the big one. I've been wanting to get to this for years, and it's finally time to get it done. The first thing to happen is that Paint.NET needs an improved selection of built-in brush stamps (currently only "circle" is implemented). Second, custom brushes need to be supported without the use of a plugin. This will bring brushes up to the same level that Shapes is now at. Third, pen and pressure sensitivity is desperately needed and long overdue. I'll be posting more details when this project starts taking shape, and I'm hoping to start on it this summer.

 

(Keep in mind, however, that pressure sensitivity will require at least Windows 8 or maybe 10: the APIs for this do not exist on Windows 7.)

 

Expanded Plugin System(s)

I really wanted to ship 4.1.2 with GPU support for effect plugins. However, a high-priority security vulnerability forced me to shelve that at the last minute. Now that I've had more time to think about this, I'd like to revamp the effect plugin system further -- it hasn't seen much love in the last decade. Providing access to GPU acceleration and Direct2D is an obvious next step, but I also have an opportunity to clean things up in this area. Effects can't easily combine (or compose) with other effects, and this makes it really hard to do arbitrarily complex things with them. It's also difficult to add new functionality to the effect system without accidentally breaking other parts of it.

 

In addition, it's been way overdue for Paint.NET to support more plugin types beyond effects and file types. Plugins should be able to access more than the current layer, and even be able to implement whole-image transforms, or to create a new image (whether from scratch or based on another image that's already open). You can't even write a rescaling plugin for Paint.NET right now! I don't have concrete plans for specifically what I'll be adding here, or when, but it's high up on the priority list. And in the long term, I would still like to add support for tool plugins (something of a holy grail).

 

Until next time …

This roadmap for 2019 is ambitious, but I think I should finally have enough time to actually realize most of it. Hopefully I’ll be able to blog more in the coming year now that I’ve got more time and energy for it.

 

Paint.NET is only going to get better as time goes on, and I'd really like to thank everyone for all of their support in making this transition to full-time self-employment possible for me. Thanks for the donations, thanks for buying the Windows Store app, thanks for the crash reports, thanks for the feature requests, and thanks for all of the fish!

 

  • Like 4
  • Upvote 3

Share this post


Link to post
Share on other sites

Greetings Rick,

I posted this query on your WordPress Blog and then again in this Discussion and Questions section back in April.
this time I hope that my query will not be overlooked or ignored when it can be answered with a Yes, No, or Maybe.

Here it is again:

It would be super if Paint.Net had a stage to enter image elements in the place of document sized layers. In software like in Adobe’s Flash, Microsoft’s Power Point, and especially their discontinued Expression Design; the layers are more manageable and the user can have image elements outside of the document in this staging area. Will a layering feature like this ever come to Paint.Net?

Example:
PowerPoint_Layers.jpg

  • Like 1

Share this post


Link to post
Share on other sites
3 hours ago, Rick Brewster said:

Second, custom brushes need to be supported without the use of a plugin.

 

My reaction to this:

 

cheering_minions.gif

 

What about expanding the layer blending modes to include more options as @ReMake post had all the algorithm necessary to pull it off?

 

 

Share this post


Link to post
Share on other sites

Rick, thanks for the great free software. I love this and have been using it for a while. One reason I love it is because it is small in file size. I wish you will add support for RTL language (direction button) for the text.

Share this post


Link to post
Share on other sites
5 hours ago, Rick Brewster said:

In addition, it's been way overdue for Paint.NET to support more plugin types beyond effects and file types.

 

Since you are planning to support custom brushes, I would suggest the addition of a "brush loader" plugin type.

This would allow the community to add support for loading the brush formats used by other image editors, without having to make users convert the brushes to PNG (or whatever you decide to use as Paint.NET's native brush format).

Share this post


Link to post
Share on other sites

WOW! This will be an exciting year! I look forward to these changes.  😊

Thank you, Rick, for PDN.  <3

Share this post


Link to post
Share on other sites

@HyReZ, that's a good feature idea. However, it's not really what Paint.NET is designed to handle at the moment. It would require migration to a more object-oriented approach for the internal document format, which is currently based around layers of identically sized bitmaps instead of arbitrarily sized and placed objects. Many parts of the rendering engine are totally fine with it, but other systems -- most notably, the tools and all of the commands for image manipulations -- wouldn't know what to do and would need upgrades and retrofits. So it would be a large and extensive upgrade to reach that point. I'm not currently planning to pursue this direction.

  • Like 1

Share this post


Link to post
Share on other sites

@TrevorOutlaw, regarding the blending modes: There's been some real investigation into this by @Ed Harvey, but the project is currently on ice. Adding new blend modes would break forwards compatibility from older versions -- that is, some old versions would be completely incapable of opening newer PDN images that used the new blending modes. I'm actually okay with that -- I think it's version 3.36 and older that would break -- but it still requires some due diligence that just hasn't made it to the very top of the priority list yet. Other older versions, like the 3.5 series, would just see an unrecognized blending mode and default over to Normal for that layer.

Share this post


Link to post
Share on other sites
5 hours ago, Rick Brewster said:

@TrevorOutlaw, regarding the blending modes: There's been some real investigation into this by @Ed Harvey, but the project is currently on ice. Adding new blend modes would break forwards compatibility from older versions -- that is, some old versions would be completely incapable of opening newer PDN images that used the new blending modes. I'm actually okay with that -- I think it's version 3.36 and older that would break -- but it still requires some due diligence that just hasn't made it to the very top of the priority list yet. Other older versions, like the 3.5 series, would just see an unrecognized blending mode and default over to Normal for that layer.

 

Thanks for the response, Rick. 

Share this post


Link to post
Share on other sites

About Brushes; THANK YOU.

 

On another note, as long as the brushes function properly with how they are supposed to look when being used on the canvas, and with a larger resolution to work fine, too, a ton of addition brush functions probably don't have to be incorporated, just the basics, I would imagine. Also, I honestly believe, if it helps with keeping things less complicated, if .abr brushes need to be converted to a PDN brush format, I honestly believe many people would contribute to doing that, or, better, yet, PDN likely will have the means to convert (or create) any .abr brush into whatever future format it needs to be to work properly in PDN.  So, from a user POV who uses PDN for things often done in 300 dpi, that's my two cents. Having written that, ppl will be wanting to contribute their created or converted (if it comes to that) PDN brushes, like with shapes, I would imagine.

 

It would be kind of nice if the smaller size file of PDN, and a better version of Brush Factory (for 300 dpi work & color palette issues--or just color palette issues) could still be offered as an alternative to the impending future larger file size version release of PDN, for those who do use older OSs. It would be nice if people can pick which of the two they need to use or can use, especially for educational purposes or teaching facilities, allowing people to access a great image editing software to where they normally wouldn't be able to.

 

I know going closer to 40 MB, from close to 8MB, is a big change but it's still not as horrible as the alternative free image software, which is now nearing over 200 MB. UGH!!! Your possible future release, even at 40 or 50 MB still isn't anywhere near that.

 

Regardless of what you end up doing or adding with it in a future release, thank you so much for choosing to spend more time with it. Especially, since you're the baby daddy. Your kid has missed and needs his dad.

 

This is also kind of a small side note, but maybe allow the Norton community to stop making it's alarms go off so often with PDN and many of it's plugins? I don't know if this will cause issues for people using it on computers that are not theirs, where they can't go into admin settings and let Norton know it's ok. I'm not sure if, while using at a library or university or wherever, if that will cause problems for the computer it's used on, even if portable. Clearly, I also know nothing about the techie side of this so maybe this is neither here nor there but I do know the Norton virus protector doesn't act like that with 198 MB Gimp and it's bloated pile of features built into it or the few add on plugins. Sometimes a part of me wonders if there could be some form of quasi politics involved in that. Maybe it's just a matter of someone always uploading their dll files to Norton? It's just odd and needlessly concerns people or prevents some features from being used. Norton, oddly, is the biggest "RED ALERT" PDN flagging virus protector. I'm comparing it to the ones I've used with PDN; being McAffee, Kaspersky, and Norton. It's never flags just for PDN, other than one time period about 2 yrs ago,  but it does for many plugins. I go in to Admin settings and deal with it but when not using it in Admin, after allowing plugin use, it still always pops up to say, more or less, "OMG!!! ARE YOU SURE YOU WANNA USE THIS FILE EVEN THOUGH YOU SAID IT WAS OK TO USE IT????!!! 😮

Share this post


Link to post
Share on other sites
1 hour ago, ScrapbookWithPDN said:

if .abr brushes need to be converted to a PDN brush format, I honestly believe many people would contribute to doing that

 

Some abr files may have license terms that would forbid redistributing the brushes they contain.

 

57 minutes ago, ScrapbookWithPDN said:

or, better, yet, PDN likely will have the means to convert (or create) any .abr brush into whatever future format it needs to be to work properly in PDN.

 

The suggestion for a "brush loader" plugin in my previous post was addressing this.

The idea being that Paint.NET users could install plugins to allow it to use Photoshop brushes, GIMP brushes etc in addition to its native format.

  • Like 1

Share this post


Link to post
Share on other sites
On 12/27/2018 at 7:38 AM, Rick Brewster said:
 

.NET Core 3.0

....

 

And, for those who're interested: the move to .NET Core will finally enable a truly portable version of Paint.NET since .NET Core can just be bundled into the local app directory. I've been slowly moving towards "app local deployment" of dependencies anyway; e.g. for the v4.1 release I got fed up with the Visual C++ runtime's installation issues and moved them to be "app local". The security arguments no longer convince me that it's worth the massive hassles for both myself and end-users. The straw that broke the camel's back (so to speak) on this was when the Surface Go shipped with an incorrectly signed version of the Visual C++ runtimes which then prevented Paint.NET from loading at all (remember: the Surface Go runs Windows 10 "S" by default and can only run Store apps).

 

 

Hi Rick,

Happy new year. Thanks for you effort.

 

 

Shall we still refer to this latest post on how to get the Portable Version of Paint.net ?
source : https://forums.getpaint.net/topic/113484-paintdotnet-in-a-zip-file-no-installation/?do=findComment&comment=551181

 

OR

 

There is a direct download of portable version to be stored in a USB portable drive and immediate use at any PC without installing anything.
Kindly provide the download link of portable version of Paint.net.


Many thanks in advance.


Cheers

Share this post


Link to post
Share on other sites
On 12/27/2018 at 1:13 AM, HyReZ said:

Greetings Rick,

I posted this query on your WordPress Blog and then again in this Discussion and Questions section back in April.
this time I hope that my query will not be overlooked or ignored when it can be answered with a Yes, No, or Maybe.

Here it is again:

It would be super if Paint.Net had a stage to enter image elements in the place of document sized layers. In software like in Adobe’s Flash, Microsoft’s Power Point, and especially their discontinued Expression Design; the layers are more manageable and the user can have image elements outside of the document in this staging area. Will a layering feature like this ever come to Paint.Net?

Example:
PowerPoint_Layers.jpg

Hi HyReZ

Firstly, a Happy New Year to you.

I must say I do like your idea for Paint.Net, the graphical interface in your example reminds me of Serif DrawPlus (which I use regularly and has a similar interface).

Kindest regards

Roger the Dodger : )

Share this post


Link to post
Share on other sites

Hi Rick

 

(and a Happy New Year to you all)

I am very pleased to learn of the proposed new features for Paint.Net (even though I am still a Newbie).

Just wondering if it would be possible to update the "Lasso Select" in the Tools Menu, so it functions more like the Lasso Tool in PSP and Adobe Photoshop?

This would be a brilliant addition to an already excellent Image/photo manipulation software.

 

Kindest regards and thank you for your continued hard work

Roger the Dodger: )

Edited by Roger the Dodger

Share this post


Link to post
Share on other sites

You're going to have to be more descriptive and specific about what you mean by "more like the Lasso Tool in (some other program)".

 

But, I don't have any specific plans for the lasso tool right now. What you see above is the current plan. That doesn't mean I won't be doing anything with the lasso, it just means I'm razor focused on what I talked about above.

Share this post


Link to post
Share on other sites
On 1/10/2019 at 9:50 PM, Rick Brewster said:

You're going to have to be more descriptive and specific about what you mean by "more like the Lasso Tool in (some other program)".

 

But, I don't have any specific plans for the lasso tool right now. What you see above is the current plan. That doesn't mean I won't be doing anything with the lasso, it just means I'm razor focused on what I talked about above.

Hi Rick

 

Basically I meant the ability of the Lasso Tool to be used to draw around  the outline of an image (such as a specific detail).

Therefore, allowing the User to cut the chosen image and paste it into another image, or to remove from the original photo/image.

A the moment the current Lasso Tool is not intuitive to use.

 

Hope that helps

 

Kindest regards

Roger the Dodger

Share this post


Link to post
Share on other sites

You'll have to provide an example of what you specifically mean, because what you're describing is exactly how the lasso currently works.

Share this post


Link to post
Share on other sites

@Rick Brewster

I think @Roger the Dodger may be referring to PS's Magnetic Lasso Tool when it snaps to the nearest border with the ability to put anchor points

 

52 (soon)  and unbelievably excited about the options that brushes/ change to eraser will bring.

Game changer

Edited by welshblue
  • Like 2

Share this post


Link to post
Share on other sites
5 hours ago, Roger the Dodger said:

Hi Rick

 

Basically I meant the ability of the Lasso Tool to be used to draw around  the outline of an image (such as a specific detail).

Therefore, allowing the User to cut the chosen image and paste it into another image, or to remove from the original photo/image.

A the moment the current Lasso Tool is not intuitive to use.

 

Hope that helps

 

Kindest regards

Roger the Dodger

 

Get this, instead.

 

Share this post


Link to post
Share on other sites
1 hour ago, welshblue said:

@Rick Brewster

I think @Roger the Dodger may be referring to PS's Magnetic Lasso Tool when it snaps to the nearest border with the ability to put anchor points

 

52 (soon)  and unbelievably excited about the options that brushes/ change to eraser will bring.

Game changer

 

Thanks Welshblue, that's the one

Kindest regards

Roger the Dodger : )

Share this post


Link to post
Share on other sites
1 hour ago, TrevorOutlaw said:

 

Get this, instead.

 

 

Hi TrevorOutlaw

 

Thank you, I shall be installing this.

Kindest regards

Roger the Dodger : )

  • Upvote 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now