- New: Title bars now respect Dark Theme in Windows 10 20H1+
- Updated the bundled WebPFileType plugin to v22.214.171.124 (thanks @null54!)
- Updated the bundled DDSFileTypePlus plugin to v126.96.36.199 (thanks @null54!)
- Fixed an error with Image->Resize when using Nearest Neighbor resampling with certain image sizes
- New: Layers -> Toggle Layer Visibility menu command (keyboard shortcut: Ctrl + comma)
- Greatly improved performance for the Line/Curve and Shapes tools
- Improved performance for the Move Selected Pixels tool when using Bicubic resampling
- Fixed tooltips not going away when menu items are activated by the keyboard (Effects, Adjustments, and File -> Open Recent)
- Added a FolderChooser control type for IndirectUI-based plugins (thanks @toe_head2001!)
- Fixed compatibility for Ed Harvey's FastFX PencilSketch effect plugin
- Fixed a performance bug in the canvas renderer that was causing tiles to be copied to the GPU more often than necessary. This mostly affected performance when drawing or modifying selections, and when scrolling or zooming.
- Fixed a small memory leak with the allocations made for Win32 synchronization primitives (critical sections and condition variables)
- Updated the bundled AvifFileType plugin to verison 188.8.131.52, which fixes some issues with EXIF metadata handling. (thanks @null54!)
- Updated the bundled WebPFileType plugin to version 184.108.40.206, which fixes some issues with EXIF metadata handling. (thanks @null54!)
- Updated the bundled DDSFileTypePlus plugin to version 220.127.116.11, which adds support for DXGI_FORMAT_R32_FLOAT. This is used by Bethesda's Creation Kit for Fallout 4. (thanks @null54!)
- Fixed the app being completely broken when "Translucent windows" was disabled. This was caused by a bug introduced in .NET 6.0.1.
- This is a hotfix for a crash in the box filter rendering kernel, which is used to generate mip-maps for the canvas when zoomed out.
- Improved rendering performance for most tools, which are now up to 100% faster
- Fixed an issue with the Save Configuration dialog where the OK and Cancel buttons were overlapping on Windows 7 (thanks @toe_head2001 for the fix!)
- Fixed an issue when saving an image with 257 unique colors at 8-bit color depth when the 257th unique color was the last (bottom-right) pixel.
- Fixed an issue where the Layers window buttons were not correctly enabling/disabling after an undo/redo operation.
- Fixed an issue that was preventing the VTF Plugin from saving multi-layer images correctly
- Fixed an issue when saving images at 1-bit or 2-bit color depth, where sometimes not all colors would be included.
- Fixed an issue with some IndirectUI plugins that were using customized colors for their sliders
- Fixed a compatibility issue with TR’s Morpher plugin
- Fixed a compatibility issue with some of @Ego Eram Reputo‘s older plugins that were unable to launch help links due to a change in .NET 6
- New: The app has been migrated to .NET 6, which has improved both rendering and startup performance
- New translation: Catalan (ca)
- New translation: Corsican (co)
- New translation: Thai (th)
- Changed: The /createMsi command for the installer has been removed.
Instead, you can now download MSIs directly from the GitHub releases page.
- Improved various UI controls for Dark Theme, e.g. scrollbars (Win10 v1809+ only)
- Fixed the way various UI controls look on Windows 11, e.g. buttons and drop-down lists
- Fixed the View - Zoom to Window command when using the keyboard shortcut (Ctrl+B), which was resetting instead of toggling the zoom level
- Improved performance during the "extracting" stage of the installer by migrating away from Nullsoft Scriptable Installer System (NSIS)
- Reduced the download size on ARM64 by about 33%
- Fixed a rendering bug in the Dents and Polar Inversion effects, as reported
- Fixed a memory leak in the selection renderer that was consuming gigabytes of GPU memory, resulting in crashes.
Thanks to @Zagna for finding this and testing the fix!
- Fixed some GDI object leaks, particularly with the Save Configuration dialog, which would eventually result in a crash.
- Fixed a memory leak in Settings -> Tools. Thanks @otuncelli for finding this!
- Fixed an issue that was preventing new plugins from loading their native DLL dependencies as specified in their .deps.json file
- Fixed the app crashing after an effect plugin crashes when you choose to restart the app
- Fixed a crash while drawing a selection, right-clicking on the History window before releasing the left mouse button, and then clicking to redo a history entry, as reported
- Fixed a text rendering bug in some parts of the UI, mostly in Effects
- Fixed the "untitled:" file name argument prefix, which was preventing Window Clippings from being able to send screenshot
- Fixed some registry keys that were not being deleted during uninstall
- Fixed the PdnRepair utility on Windows 7
- Fixed some inconsistencies with the MSI as compared to v4.2.16 which were causing problems for some deployments
- Updated the bundled AvifFileType to v18.104.22.168, courtesy of @null54, which updates the AOM version and fixes a crash when reading large EXIF blocks.
See its GitHub releases page for more info.
- Fixed a hang at app startup on systems using certain locales, such as Thai (th-TH)
- Improved performance of Settings -> Tools, which used to take 6-7 seconds to open. Now it takes about 1 second, thanks to @Bruce Bowyer-Smyth
- Fixed ReadOnlyBoundToNameValuesRule for IndirectUI-based plugins. It was not initializing correctly, although it would work correctly afterward.
- Fixed an issue with using Explorer’s "Open With" menu on Windows 7, 8.1, and some editions of Windows 10
- Fixed image thumbnails in Explorer’s Details View only having a generic document icon instead of the Paint.NET icon
- Fixed a spurious, harmless error in Settings -> Plugin Errors
- Fixed a race condition that could cause a crash
- Fixed not being able to use Ctrl+C to copy text from the Setup Downloader, which is especially important for troubleshooting
- This version has been migrated from .NET Framework to .NET 5, includes major performance optimizations across the entire app, and adds native support for ARM64 devices such as the Microsoft Surface Pro X.
- New: The app has been migrated to .NET 5, and performance has been greatly improved as a result.
- New: ARM64 is now natively supported, which improves performance on devices such as the Surface Pro X.
- New: .NET no longer needs to be installed on the system because the app now uses self-contained deployment.
- New: Portable ZIPs are now available. Please note that portable installations do not currently update automatically.
- Improved performance of most effects and other compute-intensive tasks by about 20% on average, due to .NET 5's improved code generation (JIT).
- Improved startup performance for the Microsoft Store release. Previously, .NET Framework's NGEN was unavailable for Store apps, but now .NET 5 enables self-contained deployment along with ReadyToRun + crossgen, which serves the same purpose.
- Improved performance: Many areas of the app have been optimized to use SIMD (SSE2/3/4.1, AVX2) on x86/x64:
- Drawing on an image with a large number of layers is faster
- Drawing with the Gradient Tool's alpha mode is faster
- Drawing with the Recolor tool is faster
- Drawing with the Eraser or Clone Stamp tool is faster when using a color whose alpha value is less than 255
- Drawing with the Overwrite blend mode is faster
- Drawing with the Shapes tool is faster, due to improved compositing performance
- Drawing with a brush tool without antialiasing is faster
- Tile compression has lower overhead due to being optimized for SSE2 and AVX2
- Working with complex selections is faster
- Many other optimizations all throughout the application and rendering engine
- Improved performance of loading custom Shapes by ~16x on 2nd and subsequent app starts.
- Improved performance of the Magic Wand tool by a substantial amount.
- Improved performance of the Paint Bucket tool by a substantial amount.
- Improved performance of the Paint Bucket when changing the color or certain other toolbar settings by not recalculating the stencil buffer for the filled area.
Changes should now be visible immediately.
- Improved performance of Polar Inversion by 3x, mostly as a corollary to fixing a bug that was causing hangs, and a little bit due to .NET 5.
- Improved performance on systems without HyperThreading by reserving 1 core for the UI. Performance is also improved on systems with it by utilizing more of the logical cores.
- Improved performance while installing or updating the app, due to no longer needing the "Optimizing performance for your system" stage (NGEN has been replaced with ReadyToRun via crossgen).
- Improved memory usage when custom shapes are installed so they don't litter the heap with hundreds of thousands of boxed value types (e.g. floats and points).
- Improved selection antialiasing quality by using a 4x4 super sampling filter instead of a 3x3 super sampling filter. The code has also been optimized to use SSSE3 on x86/x64.
- Improved: Effect and File Type plugins can now be organized into folders. The plugin loader will recursively search for DLLs up to 1 folder deep.
- Fixed a bug when saving with "Auto Detect" bit-depth which was causing fidelity loss on some images that already had 256 colors or less.
- Fixed: There were some issues with zooming in/out using the keyboard, where the anchoring point was not calculated correctly, causing the canvas to drift in the wrong direction.
- Fixed the inability to use middle-mouse panning after using a selection tool and pressing delete before releasing the mouse button.
- Improved: Plugins are now loaded into isolated AssemblyLoadContexts, which improves stability and resiliency to various problems with versioning, loading dependencies, plugin bugs, and incorrect plugin installation.
- Fixed a crash when trying to draw a fixed-size rectangle selection that was larger than the image.
- Fixed a bug with the Tolerance slider where both 58% and 59% would be displayed as 58%, due to a rounding issue.
The correct value was actually being used, it just wasn't being displayed correctly.
- Added a /disablePlugins command-line argument to aid in troubleshooting various issues with app startup and incorrect plugin installation.
- New: Additional directories can now be specified for plugin discovery, which (e.g.) enables the use of OneDrive for storing plugins.
- Note that this does not work with the portable version of the app, but you can install plugins next to the app so it isn't necessary.
- Updated the bundled AvifFileType plugin to v22.214.171.124, courtesy of @null54, which includes support for multi-layer AVIF files, and adds native support for ARM64. See the project's GitHub Releases page for more information.
- Updated the bundled DdsFileTypePlus plugin to v126.96.36.199, courtesy of @null54, which adds native support for ARM64. See the project's GitHub Releases page for more information.
- Updated the bundled WebPFileType plugin to v188.8.131.52, courtesy of @null54, which adds native support for ARM64. See the project's GitHub Releases page for more information.
- Changed: FileType.IsReflexive() is now deprecated via [Obsolete], and is no longer honored. However, the Save Configuration dialog will no longer try to generate previews for FileTypes that do not specify any file extensions for loading, which is what this method was being used for.
- Known Issue: Due to crashing, GPU accelerated effects (Gaussian Blur, Motion Blur, Radial Blur) on ARM64 will actually use the CPU for rendering.
- New: Effect - Color - Quantize, which applies palette reduction to 256 colors or less, along with dithering. This is the same algorithm used when saving images at 8-bit color depth or lower.
- Fixed and improved palette generation when saving at 8-bit color depth or less
- Greatly optimized performance of palette generation and image quantization
- Added option to choose between Octree (default) and Median Cut algorithms for palette quantization when saving at 8-bit color depth or less
- Fixed a crash in Move tools when the selection was 0-width and/or 0-height
- Added tooltips w/ shortcut keys to the Tools dropdown in the toolbar
- Fixed IndirectUI ColorWheel rendering (thanks @toehead2001!)
- Fixed a crash in the Text tool when using Ctrl+(Left,Right,Backspace,Delete) (thanks @Bruce Bowyer-Smyth!)
- Changed: New layers are now filled with #00000000 instead of #00FFFFFF
- Fixed a crash when working with selections (OutOfMemoryException)
- New: Effects can now access the Document's DPI via EffectEnvironmentParameters.DocumentResolution
- Fixed drawing of the color palette in the Colors window when using some non-standard DPI scaling settings (e.g. 1.15x)
- Fixed a crash when using EdHarvey's Threshold plugin
- Fixed the return value from PdnRegion.GetBoundsInt() so it's not anchored at (0,0) unless it should be
- Fixed premultiplied-to-straight color conversion on some code paths (thanks @null54!)
- Updated bundled AvifFileType plugin to v184.108.40.206, which includes performance optimizations and bug fixes. See its GitHub releases page (https://github.com/0xC0000054/pdn-avif/releases) for more info.
- Updated bundled DDSFileTypePlus plugin to v220.127.116.11, which uses an updated version of DirectXTex (2021-04-06).
- New: Holding Ctrl while using the Color Picker tool will sample from the merged image (vs. just the current layer)
- New: The file name in the title bar will now have a prepended asterisk when it has unsaved changes
- Changed: The image close 'X' button can now be clicked for images that are not currently active
- Changed: In the Text tool, Ctrl+(Backspace, Delete, Arrow Keys) has been improved to work more like Microsoft Word. Thanks to @Bruce Bowyer-Smyth for the patch!
- Fixed: The Rectangle Select tool, when used to draw a constrained, fixed ratio, or fixed size selection, will now correctly clamp the rectangle to be within the canvas
- Fixed: Layers -> Move Layer Up/Down/Top/Bottom was not working for images with fewer than 3 layers
- Fixed: Edit -> Erase Selection will now fill with transparent black (#00000000) instead of transparent white (#00FFFFFF)
- Fixed: Custom Shapes will now be displayed in a consistently sorted order
- Fixed: ".pdnSave" ghost files should no longer linger when saving to the desktop. This was due to a bug in Windows and File Explorer.
- Fixed crashes due to DXGI/Direct3D "lost device" or "device removed" errors that can happen for various reasons (duck/undock, driver update, low memory, etc.)
- New: Plugins can now use the IArrayPoolService, a wrapper around .NET's ArrayPool, to optimize their array allocations
- Updated bundled AVIF FileType Plus to v1.1.6. See the pdn-avif releases page on GitHu for more information.