The New NPS Image Editor 4.0

I started NPS Image Editor when I was 13 years old using Visual Basic 6. After quickly realizing that this was unsustainable, I rewrote it in VB.NET using the .NET Framework, slowly maintaining it over the years. Today I am excited to announce NPS Image Editor version 4.0, codename "Pyrite", now targeting the new .NET 8 runtime in its place.

Functionally this is a fairly incremental upgrade, mostly focusing on modernizing the UI to match the overall aesthetic of Windows 11 (instead of matching a combination of Windows XP and 8), but there are plenty of smaller features added to make it worth your while.

To skip straight to the download, go to the download website. As usual, you can update your existing copy of NPS Image Editor by clicking the update notification.

What's new?

There are a few notable features in the 4.0 release, not the least of which is the new logo. It's a subdued version of the NPS 3 logo but inspired by the Windows 11 Fluent design. In fact there is both a dark and a light version of the logo.

splash screen with 2 colors

Visual updates

After seeing the new logo, you'll be brought to the new welcome screen that greets you with a gentle animation (which can be turned off). Access templates, recently-used files, tips, and more. Drag and drop functionality has been visually improved too. Throughout the program, expect to see soft rounded corners, modern icons, and a gentler color scheme called "Acrylic".

Speaking of color schemes... dark mode has been an emphasis in development. No more needing to restart the program to change it. In fact, NPS will follow the Windows dark/light setting and automatically update its appearance when that changes. Color schemes now have a "light" and "dark" variant available (including the trusty old Elegant scheme from NPS 3.0 if you prefer it) and you can manually choose the preferred mode too.

NPS Image Editor toolbox

Document templates

Add your own templates, both "basic" ones that specify dimensions and color, or "full" ones that can be imported from a .NPSD file and can include multiple layers, graphics, and more.

Templates UI

Extensions and filters

The "Obsidian Extension Model" of NPS 3 did its job but was very janky, for lack of a better term, as running a filter required saving a file to disk and running an external EXE to process it. NPS 4 can still use those extensions but the new "Pyrite Extension Model" greatly improves on it by moving extension functionality into DLLs. Additionally most of the filters have been rewritten to use a simple JSON-based UI definition, allowing future versions of NPS to drastically change the UI's actual appearance without needing the extension to be changed. A template is coming soon for you to make your own filters!

The new Filter Gallery allows you to see a preview of what each filter does. Who's the rat in the pictures? It's none other than the rat from the original Nookkin's Paint Shop, specifically the test image I used for debugging my filter code since I was 13 years old!

Filter Gallery

You can see the full release notes here.

Looking forward and backward

Wide system compatibility has been a consideration for a while. Unfortunately with my emphasis on compatibility I ended up using outdated development tools and philosophies, foregoing the latest and greatest technologies to ensure that as many people could use the software as possible.

Times have changed since then. It used to be that going from XP to Vista was a massive difference in available functionality and many people avoided Vista early on. Now Windows 10 is reaching its end of support in 2025 and the amount of progress in the availability of things like standards-compliant web browsers, fast internet connections, and easily-updated runtime frameworks makes it much easier to keep developing for the latest and greatest with decent compatibility.

With the Pyrite release, the goal is to prioritize using the newest technologies available. That's not to say that I'm leaving old computers in the dust; I have managed to install both .NET Desktop Runtime and WebView2 on Windows 7 and NPS more or less works (albeit with a very slow launch for no apparent reason). However I'm trying not to let compatibility reduce the functionality or quality of the mainstream release, so today I've drawn the line at Windows 10 being the oldest officially-supported version of Windows.

NPS 4 on Windows 7 indicating it's not supported

But what about my loyal users with older computers? Glad you asked! I was on a bit of a vintage gaming kick last year and created NPS Image Editor for Legacy Systems that takes the opposite philosophical approach – maximizing compatibility with systems as old as Windows 98 and XP and porting features of newer versions of NPS. I plan to double down on this approach of developing "latest and greatest" features and then porting back what I can in order to keep the original spirit of compatibility without negatively impacting the development process.

NPS Legacy on Windows 98

Obsidian and Pyrite

NPS Image Editor 3 was codenamed "Obsidian" after one of my favorite rocks as a kid. Version 4 is codenamed "Pyrite", another rock. Pyrite is not a major change, rather it is a transitional release that focuses on completing the original NPS Image Editor vision from when I was 13 and cleaning up the code to make it more reusable and platform-agnostic.

The future

The future vision of NPS Image Editor is to make it cross-platform, especially on mobile. Version 5.0 is in its early planning stages. I'm debating between making it entirely web-based (which is inherently portable) or using .NET MAUI. But either way, expect to see NPS Image Editor on Android, iPhone, Mac, and Linux eventually.

Posted on Sunday, March 24, 2024 at 1:00 PM | Permalink | Tags: NPS

Comments (0)

Leave a comment

five minus zero is (Huh?)
Comment moderation is enabled.
Your comment will appear on the page after it has been reviewed.