Jump to content

Automatic antialiasing, lack of?

Recommended Posts

Hi Rick (& other PN devs, if any),


Almost 2 years ago, I started a thread here asking why PN still didn't have the option to automatically antialias edges around pastes and deletions. After all, one of the things we most commonly do is overlap elements, which requires antialiasing to have any chance of looking convincing.


Only other users answered my post. (One user—obviously a big comma fan [maybe he was doing a Christopher Walken impression]—replied: "Because other Apps do, what YOU want automatically, that doesn't means that this is a good idea. What, if someone NOT want antialised edges?" But again, this could be an option, just as it's an option now when making lines, shapes, text, etc. [see image].)


Last week, I needed another antialiased edge in PN and, as usual, had zoomed in and was laboriously going around it with the Eraser (which, mysteriously, does antialias). "Why is this necessary?" I asked myself for probably the 100th time.


"I know," I thought, "I'll ask on the forum", forgetting I'd already asked about it in 2017. I then found my thread here (but didn't notice I'd started it, LOL), read the replies, and posted:



I must agree. It's a limitation of PN I've never understood.


Rick, you then finally replied:



Well maybe now you understand it a little. It's not a simple thing. It's not like it was left out because of priorities or even laziness. It was just really damn complicated, and really damn slow. Maybe in another generation it'll be feasible to tackle this.


You then asked me not to "necropost", and closed the thread—which is why I've started this shiny new one, to try to follow up on this in an acceptable, non-chronologically-offensive manner. 📅 😉


Okay, then:


1. Why, exactly, is it so "complicated" to antialias edges around pastes and cuts, when PN's tools can already do it (see image)? Is it somehow more complicated to antialias around pastes and cuts than around draws and erasures?


2. Even if you would have to add AA code for the first time (e.g., if PN's tools came pre-written, and you plugged them into PN rather than coding them yourself), aren't there AA algorhithms one can use, rather than having to "reinvent the wheel"? (If PN's tools did come as pre-written modules, that's a commendable case of not "reinventing the wheel", too.) I mean, AA has been around since the '70s... It's not that arcane, is it? (I did a quick search and found lots of explanations and examples.)


3. If a user asks a legitimate question about a program's persistent limitation, and a couple of years go by without a reply from the developer(s), why is it offensive to give the thread a nudge in case it escaped the devs's attention (thus giving the devs the benefit of the doubt, too, right)?


(#3 isn't as important, so skip it if you prefer... I just couldn't help wondering.)


Don't get me wrong. We all deeply appreciate the work you do on PN. And obviously I like it well enough to keep using it despite this quirk. (I'm still using it despite the dialog boxes that don't "remember" their positions and always open smack in the middle of the editing area, requiring you to drag out of the way each time you use them, even in the same session—another puzzling omission, but one that even I could code, and I'm just a tech writer!).


BTW, I've had coffee... Sorry about that.  😜  Still, though, y'know? Thanks, A.


Link to comment
Share on other sites

'One man's pleasure is another man's pain!'
I am one who is grateful that anti-aliasing is not applied automatically to my work.

I like to have the option to apply it when, where, to what degree I need it!.
When I do use it, it mostly done thru feathering, but sometimes it is done on whole images thru blurs and smoothing.


Edited by HyReZ


Link to comment
Share on other sites

You're fundamentally misunderstanding some things. First, I wasn't offended by the question, so don't worry about that.


Second, antialiasing isn't the issue. Paint.NET has tons of antialiasing, especially since the big huge rendering engine upgrades that came in with 4.0.


The problem is feathering, and only for the Magic Wand.


Magic Wand produces a polygon that is rectilinear (only horizontal and vertical edges) and pixelated (aligned on pixels, never sub-pixel). Feathering that polygon is what's complicated and super slow. Like REALLY slow, and it would take tons of memory. Changing the feathering to be a post-processing step (that is, after the polygon is rasterized to a bitmap mask) requires major changes to the rendering engine, and it would have its own performance cost. However, the feathering technique is already implemented as part of the Paint Bucket tool.


The full explanation would be very long and would take at least a few hours to remember it all and to write it up and I just don't have the time or patience to do that, sorry. This was like 6 years ago that I worked for days on this.

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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...