This update includes another revamp of Image->Resize’s resampling modes, gamma correction for key parts of the app, higher quality canvas rendering, and a host of other miscellaneous fixes and improvements. In addition, GPU-based effect plugins now default to rendering in linear gamma space (existing plugins are not affected, however!) and have better access to color management information.
Gamma correction is important for maintaining luminance (brightness, basically) when an image is being processed or rendered. Sometimes this effect is subtle, but in some cases it can be quite pronounced.
First up, in Image->Resize the resampling mode has been moved to the bottom into an Options section, along with a new “Use gamma correction” checkbox that defaults to enabled:
The Move Selected Pixels tool has also been upgraded to support this for all resampling modes (although it’s not applicable to Nearest Neighbor), and there is a new Gamma mode choice in the toolbar if you’d rather not use it for whatever reason:
Speaking of which, there is a good test image for this over at https://forums.getpaint.net/topic/122409-feature-request-gamma-corrected-image-resizing/ . I’ll be using the “128 / 187” image for the next two screenshots.
Next up, all in-app thumbnails and the canvas itself are now using gamma correction. This ensures that luminance (aka brightness) is correctly maintained when you’re zooming out on the image (and thumbnails are basically little zoom-outs of the image). Previously, the reduced size image would get darker in ways that we’ve all just kind of gotten used to over the years (but which is wrong ).
Without gamma correction, it looks like this in v5.0.3:
With gamma correction in v5.0.4, it looks correct:
This required a bunch of changes to how the canvas renders itself, so while I was in that code I also bumped up the quality of its rendering. When zooming in to an image, a type of antialiasing is now applied so that the pixelation effect appears more uniform. And when zooming out, multisampling is used to make the image looking smoother. There are a lot less aliasing artifacts.
It’s hard to show these effects in your browser because things will likely get resized and distorted, but I’ll try. On the left is the original, a cloud bubble drawn into a 128×128 pixel space. Antialiasing was disabled and the brush size was set to 1. The next two images are zoomed at 267%, in v5.0.3 and then in v5.0.4. Notice how the pixelation effect is much more uniform in 5.0.4, eliminating the distortions you see in 5.0.3.
If you’d like to read more about gamma correction and rendering in linear gamma space, here are some resources:
- Gamma error in picture scaling, by Eric Brasseur http://www.ericbrasseur.org/gamma.html
- GPU Gems 3 Chapter 24, The Importance of Being Linear https://developer.nvidia.com/gpugems/gpugems3/part-iv-image-effects/chapter-24-importance-being-linear
- Understanding Gamma Correction, Cambridge in Colour https://www.cambridgeincolour.com/tutorials/gamma-correction.htm
- Gamma correction, Wikipedia https://en.wikipedia.org/wiki/Gamma_correction
- John Carmack (of id Software, DOOM, and Quake fame) recently tweeted about how incorrect gamma correction negatively affected the 4K UHD release of The Martian: https://twitter.com/ID_AA_Carmack/status/1654528504724062217
Get the Update
There are two releases of Paint.NET:
- Microsoft Store release (recommended)
- You can purchase it here. This helps fund development and is an alternative or supplement to sending in a donation.
- If you already have it installed, the update should happen automatically once Microsoft certifies the update, usually within the next day. To get the update immediately (once it’s certified), you can follow the instructions listed here.
- 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 week or so, but you can also get it immediately by going to ⚙ Settings -> Updates -> Check Now.
- Offline Installers and Portable ZIPs are available over on GitHub.
Changes since v5.0.3:
- Improved: Image->Resize has been updated
- The default resampling mode is now Bicubic, which has been updated to use the Catmull-Rom (“Catrom”) cubic filter. This matches the Bicubic mode of the Move Selected Pixels tool (which uses Direct2D’s “HighQualityCubic” mode).
- Added a new resampling mode, “Bicubic (Smooth)”, which has no sharpening. It produces subjectively blurrier results, but is important for scenarios where you need to completely avoid the (usually) subtle ringing artifacts that other modes (Bicubic, Lanczos, and Adaptive) can introduce due to their added sharpness.
- “Adaptive (Best Quality)” has been renamed to “Adaptive (Sharp)” and is no longer the default resampling mode. It is still a very good choice when resizing photos, but whether you use Adaptive, Bicubic, or Lanczos is up to your own personal preference.
- A new option has been added, “Use gamma correction”, which is enabled by default.
- The text box for typing in a percentage now accepts two digits past the decimal point, e.g. 35.79%
- Improved: Move Selected Pixels (free transform) has been updated
- New: Added a “Multisample Bilinear” sampling mode. This has a sharper look than Anisotropic and avoids the “ringing” artifacts that can be apparent when using Bicubic with high-contrast images (like screenshots). However, it doesn’t usually work as well when reducing a selected area to a much smaller size.
- New: Added a “Gamma mode” button in the toolbar to toggle gamma correction on and off. The default is on, which improves the quality of rendering by preserving luminance (brightness).
- Fixed a bug when using Bicubic sampling that would result in added sharpening when resizing the selected area to 1/8th its original size or smaller
- Improved: The rendering quality of the canvas area has been greatly improved
- Gamma correction is now used for mipmap generation and compositing, ensuring consistent luminance (brightness) and higher quality antialiasing.
- Multisampling is now used for antialiasing, which eliminates pixelation distortions when zooming in, and greatly reduces aliasing artifacts when zooming out.
- Improved: Thumbnails within the app now use gamma correction, which ensures consistent luminance (brightness)
- New: GPU effects and plugins now support gamma correction, with linear gamma being the default rendering mode for new plugins.
- This can be changed by overriding OnInitializeRenderInfo() and setting the renderInfo.GpuEffectColorContext property to GpuEffectColorContext.WorkingSpace (the default is WorkingSpaceLinear)
- GPU effect plugins have better access to color management information via the IGpuEffectImage interface and its ColorContext property. All input images (e.g. Environment.SourceImage) are now provided via this interface.
- In addition to the built-in effects that already render with gamma correction, the following built-in effects now also render with gamma correction:
- Adjustments -> Exposure
- Blurs -> Fragment
- Blurs -> Motion Blur
- Blurs -> Radial Blur
- Blurs -> Zoom Blur
- Distort -> Bulge
- Distort -> Crystalize
- Distort -> Dents
- Distort -> Frosted Glass
- Distort -> Pixelate
- Distort -> Polar Inversion
- Distort -> Tile Reflection
- Distort -> Twist
- Layers -> Rotate/Zoom
- Object -> Drop Shadow
- Photo -> Straighten
- Render -> Julia Fractal
- Render -> Mandelbrot Fractal
- Fixed: Ctrl+G has been reinstated as the shortcut key for Image -> Rotate 90° Counter-Clockwise
- Fixed a rendering glitch in Effects -> Distort -> Dents that would sometimes result in rows or columns of incorrectly colored pixels
- Fixed: Some systems were having problems with Paint.NET not appearing in the “Open With” list in Windows File Explorer. This should now be fixed.
- Fixed: When installing an update, the desktop shortcut is no longer recreated. This means you can delete it without it reappearing after every update. This was a bug accidentally reintroduced back in Paint.NET v4.3.
- Increased the maximum zoom range from 1.5625% (1/64) -> 6,400% to 1% -> 10,000%
- Improved the reliability of the wrapper classes for Windows COM libraries (Direct2D, etc.)
- Improved the /ignoreCorruptPDNChunks command-line parameter to allow an additional type of corrupt PDN image to be partially recovered (thanks @null54!)
- Updated the bundled DDSFileTypePlus plugin to version 126.96.36.199, which adds gamma correction for mipmap generation (thanks @null54!)
- Updated the bundled AvifFileType plugin to version 188.8.131.52, which now uses a checkbox to enable lossless compression (thanks @null54!)
- Updated the bundled WebPFileType plugin to version 184.108.40.206, which reduces some confusion when using lossless compression (thanks @null54!)
2 thoughts on “paint.net 5.0.4 is now available”