Paint.NET 5.1 Beta (build 9070)

This update fixes a few longstanding issues with copy/paste, tool shortcut keys, and tooltips in the Tools window. I’ve also changed the capitalization of “paint.net” to be “Paint.NET.”

Change Log

Changes since 5.1 beta (build 9066):

  • Fixed: Copy/Paste has been hardened against short-term intermittent errors and should no longer show spurious error dialogs (e.g. ERROR_ACCESS_DENIED) except in legitimate cases.
  • Fixed: Certain shortcut keys, especially for switching tools, will no longer stop functioning if a floating window (e.g. Tools) is hidden and then shown by clicking on the button at the top right of the main window.
  • Fixed: Tooltips in the Tools window will no longer stop functioning if a floating window (e.g. Tools) is hidden and then shown by clicking on the button at the top right of the main window.
  • Removed the “Scrolling past the edge of the image (overscroll)” checkbox from Settings. This was enabled by default, and now it is always enabled.
  • Fixed: The installer was occasionally showing an error about an InvalidGraphConfigurationException on some systems
  • Added a KnownColorSpace API for plugins so they can create IColorContexts and IDeviceColorContexts for the Display P3 and ProPhoto RGB color spaces

Download and Install

This build is available via the built-in updater as long as you have opted-in to pre-release updates. From within Settings -> Updates, enable “Also check for pre-release (beta) versions of paint.net” and then click on the Check Now button. You can also use the links below to download an offline installer or portable ZIP.

image.png

You can also download the installer here (for any supported CPU and OS), which is also where you can find downloads for offline installers, portable ZIPs, and deployable MSIs.

paint.net 5.1 beta (build 9066)

This is a hotfix that fixes a plugin, @BoltBait‘s Text Fun Factory, that was broken in the previous beta build.

Change Log

Changes since 5.1 beta (build 9064):

  • Fixed: @BoltBait‘s TextFunFactory plugin was not working on Windows 10 due to the lack of support for IDWriteFontFace6 (despite what Microsoft’s documentation states)

Download and Install

This build is available via the built-in updater as long as you have opted-in to pre-release updates. From within Settings -> Updates, enable “Also check for pre-release (beta) versions of paint.net” and then click on the Check Now button. You can also use the links below to download an offline installer or portable ZIP.

image.png

You can also download the installer here (for any supported CPU and OS), which is also where you can find downloads for offline installers, portable ZIPs, and deployable MSIs.

paint.net 5.1 beta (build 9064)

This is a hotfix for the bugs that were discovered in the previous build (5.1 beta build 9063).

Change Log

Changes since 5.1 beta (build 9063):

  • Fixed: Clicking in the color wheel was not setting the active color
  • Fixed: Retrieving an 8-bit bitmap from the clipboard with IClipboardService.TryGetImageBgra32() was not working

Download and Install

This build is available via the built-in updater as long as you have opted-in to pre-release updates. From within Settings -> Updates, enable “Also check for pre-release (beta) versions of paint.net” and then click on the Check Now button. You can also use the links below to download an offline installer or portable ZIP.

image.png

You can also download the installer here (for any supported CPU and OS), which is also where you can find downloads for offline installers, portable ZIPs, and deployable MSIs.

paint.net 5.1 beta (build 9063)

This build fixes some issues reported with the previous build, namely with pasting or loading images of certain types (e.g. 8-bit PNGs) or with certain types of color profiles (XYB/LUT). Input latency for the canvas has also been further reduced a little.

Change Log

Changes since 5.1 beta (build 9056):

  • Fixed: Right-clicking in the Colors window’s palette will now correctly set the inactive color (regression from 5.0)
  • Improved input latency further by using a dedicated per-Control thread for asynchronously calling IDXGISwapChain[1]::Present[1]() instead of using the shared threadpool. This also fixes some weirdness at startup with canvas redrawing when a lot of plugins are installed, especially if antivirus decides to do a more in-depth security scan.
  • Fixed: Could not copy 8-bit-or-less bit-depth images from Explorer into Paint.NET.
  • Fixed: Copying a 4-bit PNG from Explorer into Paint.NET would have extremely bad performance.
  • Fixed: Images with XYB LUT color profiles were not loading, or were loading incorrectly
  • Fixed: GPU effect plugins will not default to Float32 precision when using IDeviceContext.CreateImageFromBitmap(). This was otherwise resulting in inconsistent rendering output or analysis results.
  • Fixed: IImagingFactory.CreateColorTransformedBitmap() and IBitmapSource.CreateColorTransformer() are now available for plugins to make use of for color management purposes.
  • New: Plugins may now use PixelFormat.[Try]CreateDefaultColorContext(), IImagingFactory.[Try]CreateDefaultColorContext(), and IDeviceContext.[Try]CreateDefaultColorContext() extension methods. These will create the default color context (color profile) for the given PixelFormat.
  • New: Plugins may now use the PixelFormat.GetInfo() extension method to retrieve the corresponding IPixelFormatInfo object
  • New: Plugins may now implement the managed ITextRenderer interface (corresponds to the native IDWriteTextRenderer1 interface), and use it when calling ITextLayout::Draw(…)
  • New: Added ITextLayout methods Get/SetCharacterSpacing and Get/SetPairKerning
  • New: Added ITextFormat properties LastLineWrapping, OpticalAlignment, and VerticalGlyphOrientation

Download and Install

This build is available via the built-in updater as long as you have opted-in to pre-release updates. From within Settings -> Updates, enable “Also check for pre-release (beta) versions of paint.net” and then click on the Check Now button. You can also use the links below to download an offline installer or portable ZIP.

image.png

You can also download the installer here (for any supported CPU and OS), which is also where you can find downloads for offline installers, portable ZIPs, and deployable MSIs.

paint.net 5.1 beta (build 9056)

Just a few more changes and fixes before the stable release next month, including some tweaks to clipboard handling with respect to color management.

Change Log

Changes since 5.1 beta (build 9038):

  • Updated clipboard handling with respect to color management: instead of being converted to sRGB, PNGs copied to the clipboard now contain the image’s color profile. When pasting a PNG from the clipboard, the color profile is used if it’s available. For plugins using IClipboardService, there are now methods for including the color profile when copying, and obtaining the color profile when pasting.
  • Fixed Edit->Paste into New Layer and Layers->Import from File so they fill with transparent black instead of the secondary color when expanding the canvas size
  • Fixed some flickering in the toolbar when undoing certain commands
  • Slightly improved overall performance by switching to .NET 9’s System.Threading.Lock
  • Fixed a few small performance bugs with the new Direct2D Flip Mode code
  • Updated to .NET 9.0-rc2, which fixes a small visual glitch in window titlebars

Download and Install

This build is available via the built-in updater as long as you have opted-in to pre-release updates. From within Settings -> Updates, enable “Also check for pre-release (beta) versions of paint.net” and then click on the Check Now button. You can also use the links below to download an offline installer or portable ZIP.

image.png

You can also download the installer here (for any supported CPU and OS), which is also where you can find downloads for offline installers, portable ZIPs, and deployable MSIs.

paint.net 5.1 beta (build 9038)

This update is chock full of bug fixes and is a big step toward the final/stable release, which I’m planning to coincide with the stable release of .NET 9 in November.

Change Log

Changes since 5.1 beta (build 9023):

  • Fixed: The canvas tile renderer was using an extraordinary amount of memory when zooming out on a large image, which would then cause crashes.
  • Fixed some rendering glitches in the Levels UI when resizing the window.
  • Fixed some rendering glitches in the Curves UI when switching between transfer tables (Luminosity vs. RGB).
  • Fixed some issues with the mouse cursor not being initialized correctly when performing certain operations, such as undo/redo or when drawing a line/curve. Instead of being a crosshair or hand, it would be the standard arrow cursor.
  • Fixed an input state bug that made it possible for thumbnails to stop working if focus was lost while holding down the mouse button. For example, pressing Ctrl+N (for File->New) while using the Move Selected Pixels tool.
  • Fixed the History window’s scrollbar (it was not drawing at all).
  • Fixed some flickering that could happen in the History window when switching between images.
  • Fixed some flickering in the toolbar that could happen when performing undo or redo operations.
  • Fixed an error in the Levels UI that was preventing the output gamma values from updating correctly.
  • Improved performance of Levels and Auto-Level, which should also significantly reduce the chance of them crashing on older Intel GPUs.
  • Fixed a rendering glitch that could happen if the window was being resized while Ctrl+Tab was held down to switch between images. Some images would have their canvas in a cropped state that would only go away if the window was resized again.
  • Changed the crash log format so that it is the same as that used for other in-app errors and Settings -> Diagnostics.

Download and Install

This build is available via the built-in updater as long as you have opted-in to pre-release updates. From within Settings -> Updates, enable “Also check for pre-release (beta) versions of paint.net” and then click on the Check Now button. You can also use the links below to download an offline installer or portable ZIP.

image.png

You can also download the installer here (for any supported CPU and OS), which is also where you can find downloads for offline installers, portable ZIPs, and deployable MSIs.

paint.net 5.1 beta (build 9022)

This is a relatively light update in the sense that you shouldn’t “see” any big changes.

Under the hood, however, there are some big changes. The first is that Paint.NET is now running on .NET 9.0, which has a lot of performance improvements over .NET 8.0. You can read about them all here. Some of those improvements are quite impactful for Paint.NET, including those that target startup performance and exception handling performance. This also ensures that plugins can keep making use of the latest runtime, framework, libraries, and tools.

The other big under-the-hood change is that I’ve migrated the UI presentation system from DirectComposition (aka “DComp”) to Windows.UI.Composition (aka “WUC”). The use of DComp was new in PDN v5.1, but WUC is actually what Microsoft recommends for newer apps (Win10+) and I wanted to be aligned with that. I originally thought that WUC was built on top of DComp, but I recently learned that isn’t true — they’re both APIs that provide interfaces to DWM (Desktop Window Manager), but WUC is the newer API. This just sets things up for success in the future if PDN needs to use Windows’ composition APIs for something more substantial.

Change Log

Changes since 5.1 beta (build 9004):

  • Changed: Upgraded to use .NET 9.0 (RC1)
  • Changed: Migrated Direct2D presentation system from DirectComposition to Windows.UI.Composition
  • Fixed: Rotate/Zoom had really broken rendering with particular image sizes, such as 13830 x 7485 px (which was 4 tiles wide by 2 tiles tall)
  • Known Issue: Title bars of dialog boxes will sometimes start out as white and then fade to black, instead of just being black (bug in .NET 9.0 RC1, already fixed for 9.0 RC2)
  • Changed: Plugins may no longer use BinaryFormatter
  • Updated the bundled AVIF FileType to version 3.10.0. Thanks @null54!
  • Updated the bundled DDS FileType Plus to version 1.12.11. Thanks @null54

Download and Install

This build is available via the built-in updater as long as you have opted-in to pre-release updates. From within Settings -> Updates, enable “Also check for pre-release (beta) versions of paint.net” and then click on the Check Now button. You can also use the links below to download an offline installer or portable ZIP.

image.png

You can also download the installer here (for any supported CPU and OS), which is also where you can find downloads for offline installers, portable ZIPs, and deployable MSIs.

paint.net 5.1 beta (build 9000)

I haven’t been updating the blog lately, partly due to … honestly I kind of just forgot about the blog (do people still read blogs? Let me know if it’s still important to you so I don’t forget again!). I kept meaning to update it for the new 5.1 pre-release builds I’ve been releasing, but life got quite busy, work was really interesting, etc. When I was away from my PC I’d often think, “oh yeah I need to update the blog,” but then I never remembered by the time I got back to my PC. Too many other things going on.

Anyway! Version 5.1 is introducing some important functionality and some amazing performance improvements, described in depth in following forum posts:

tl;dr: COLOR MANAGEMENT (support for color profiles), including support for HDR and WCG (Wide Color Gamut) displays. Performance improvements. Input latency reductions. Enormous reductions in memory usage (both CPU and GPU). New and revamped blur effects.

Please head to the forum post for the newest build (5.1 beta build 9000) for download links and information.

And like I said, if you still read this blog, please post a comment to remind me that it’s still important to you. This will help me to remember to update it in the future.

paint.net 5.0.13 is now available

This is a small update that fixes some bugs, adds a new Latvian translation, and updates the bundled AvifFileType plugin.

Get the Update

There are two releases of Paint.NET:

  • Microsoft Store release (recommended)
  • Classic Desktop release
    • Download the installer from the website. This is the recommended download if you don’t have Paint.NET installed. It can also be used to update the app.
    • If you already have it installed, you should be offered the update automatically within the next few days, but you can also get it immediately by going to ⚙ Settings -> Updates -> Check Now.
    • Offline Installers and Portable ZIPs are available over on GitHub.

Change Log

Changes since 5.0.12:

paint.net 5.0.12 is now available

This is a small update that fixes a handful of bugs, and updates both the AvifFileType and WebPFileType bundled plugins to include support for loading the first frame of an animation (similar to how GIF works).

Get the Update

There are two releases of Paint.NET:

  • Microsoft Store release (recommended)
  • Classic Desktop release
    • Download the installer from the website. This is the recommended download if you don’t have Paint.NET installed. It can also be used to update the app.
    • If you already have it installed, you should be offered the update automatically within the next few days, but you can also get it immediately by going to ⚙ Settings -> Updates -> Check Now.
    • Offline Installers and Portable ZIPs are available over on GitHub.

Change Log

Changes since v5.0.11:

  • Fixed a silent crash that was preventing the app from opening when double-clicking an image in Explorer, due to a bug in .NET’s ProfileOptimization class
  • Fixed some canvas navigation keyboard shortcuts that have some overlap with the new tab movement shortcut keys (Ctrl+Shift+PageUp/PageDown)
  • Fixed a crash in the Move Selected Pixels tool when the GPU does not support Direct3D Feature Level 11
  • Fixed another rare crash when rapidly undoing changes made with the Move Selected Pixels tool
  • Fixed a few typos, inconsistencies, and bugs in some plugin APIs
  • Updated the bundled AvifFileType plugin to v1.1.27.0, which now supports loading the primary image of an animated/multi-frame AVIF (thanks @null54!)
  • Updated the bundled WebPFileType plugin to v1.3.21.0, which now supports loading the first frame of an animated WebP image instead of saying the file is not supported (thanks @null54!)