Contrary to what I said last week or so, I’ve decided to fix more than just 1 bug in the upcoming Paint.NET v3.5.6, and also to port a few other minor improvements from the v4.0 code base. Right now this is in private testing, and hopefully I’ll have another beta soon.

Here’s what I’m planning on:

  • The dreaded “red X” thumbnail bug. As it turns out, if you install the DirectX SDK, it stomps on Paint.NET’s thumbnail handler (it’s a shell extension for Windows Explorer). This has been plaguing me for over a year, and I’ve finally fixed it. Thanks go out to luck, guessing, and Sysinternals’ Process Monitor.
  • When saving an image (such as a JPEG), the EXIF metadata for “Creation Software” is no longer localized. This prevents some languages seeing “Paint.NET ?????? 3.5.5” in a saved image’s metadata.
  • Some performance and quality improvements to the Curves and Hue/Saturation adjustments, courtesy of Ed Harvey.
  • Copy and Paste! There are many scenarios that I’m fixing or improving…
    • It’ll be smarter about positioning the pasted image into the viewport (the portion of the image that is scrolled and zoomed to), instead of always jamming everything to the top-left of the image, which was forcing you to madly scroll around when pasting a bunch of stuff together.
    • When copy-pasting from Remote Desktop, the pasted image will no longer be shifted to the right by 3 pixels. This is a bug in WinForms that I’m working around, and was a bit crazy to fix.
    • Pasting from Internet Explorer or Firefox will preserve alpha. For IE9, it actually gives me a link to the file in its download cache, so I can just load that directly. For Firefox, it places a bitmap with the pixel format set to 32-bpp RGB (“no alpha”). However, it lies … so I detect when I should interpret it as 32-bit ARGB instead.
    • If you have a multi-monitor setup, and those monitors don’t form a simple rectangle, then the “gap area” will be pasted as transparent instead of black. As an example, I have two 24″ monitors. The left-hand one is 1920×1200, while the right-hand one is rotated so it is 1200×1920. If you take the bounding box, you have a rectangle where neither monitor has any representation, and this is the “gap area” (or maybe there’s a more precise term, but oh well).
  • I’m also planning to fix the issue where a JPEG is loaded that has an embedded thumbnail, then the image is modified, and then the image is saved again … but with an out-of-date thumbnail. This happens because Paint.NET “blindly” carries along all the EXIF metadata in an image (normally a good policy).
  • Some minor performance and memory usage improvements. It should improve reliability on 32-bit systems, especially when using the magic wand with complex selections.