You are currently browsing the category archive for the ‘Update News’ category.

This release fixes several issues related to copy-paste, improves performance and quality for a few adjustments, and fixes a data loss bug. You can download this using the built-in updater (make sure "Also check for betas" is enabled), or just download it directly from the website: (by the way, please do not directly link to the ZIP files)

I should be able to put out a final (non-beta) release within a week or two.

Here’s what’s changed since v3.5.5:

  • Improved: When pasting an image, Paint.NET will be smarter about ensuring it is placed within the area that has been scrolled/zoomed to.
  • Improved: Performance and quality of the Curves and Hue/Saturation adjustments.
  • Improved: Some minor improvements to memory usage, which should help out a few scenarios on 32-bit systems.
  • Fixed: Copy-paste from a Remote Desktop session will no longer be ‘shifted’ by 3 pixels.
  • Fixed: Copy-paste from Internet Explorer, Firefox, or Chrome should preserve alpha/transparency.
  • Fixed: Copying from Paint.NET and pasting into Windows Live Writer should now work.
  • Fixed: Taking a full-screen screenshot with Print Screen on a multimonitor system, where those monitors don’t form a simple rectangle, will now fill the ‘gap area’ with transparent instead of black. (Example: two monitors of the same size, one of which is rotated by 90 degrees)
  • Fixed: If Paint.NET is opened without specifying an image to open, and then the default image is modified and saved, then Paint.NET will no longer close that image upon opening another one. This was causing data loss if that default image had layers, and was then saved in a format that did not support layers (anything other than .PDN).
  • Fixed: Some systems were showing ‘red X’ thumbnails for .PDN files in Windows Explorer, instead of the real thumbnail.
  • Fixed: The EXIF "Creation Software" saved along with images is no longer localized. This prevents certain languages from seeing "Paint.NET ????? v3.5.6" in the image properties (metadata).

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.

Every so often an update is necessary to fix 1 bug. This is one of those. Before I describe it, you should head over to the forum and download the beta. I am not making it available via the built-in updater.

The bug in question was reported only recently over on the forum, although I’m pretty sure it’s been in the product since the v3.0 release in early 2007!

It’s classified as a data loss bug, although thankfully it’s a relatively minor one. When Paint.NET starts up, it creates an initial/default image (blank and 800×600) if it wasn’t told to open a specific file. Then, when you eventually/probably open another image it will close that initial/default image as long as it wasn’t modified. The idea is that if you didn’t modify that initial image then you probably don’t care about it, and closing it doesn’t result in any data loss (it’s pretty easy to recreate a blank 800×600 image).

Well, I messed up a little on the implementation of determining whether the image was one that could be automatically discarded. I was only checking the “dirty” bit, which powers the little yellow asterisk you see in the thumbnail list when an image has been modified but not saved. The problem comes with when you modify that initial image, then save it, and then open another image. Paint.NET will incorrectly close that initial image (because the “dirty” bit is set to false) even though you still have items in the history list.

This is especially problematic when you work with a bunch of layers, then save in a format that does not support them (e.g. anything but .PDN). You may want to go back and undo the flatten operation that was performed while saving that image, then make further changes, etc. Inadvertent data loss is the unfortunate result.

And before everyone asks: nothing else is being changed in this release! No new features or tweaks or anything. Those are all being saved for the v4.0 release.

Now, go have a happy Halloween. Please don’t drink too much. I’m personally going out in an astronaut costume, which is pretty awesome.

Here’s the final release for the update to Paint.NET that I’ve been talking about over the last few weeks. It brings performance improvements, a smaller download size, and of course the requisite bug fix. Thanks for everyone who has tried out the Beta and sent in bug reports and installation problems.

As usual, there are two ways to get it. The first is to just go to the Paint.NET website and download it; there is no need to uninstall your older version, as that will be taken care of automatically. The second way is to use the built-in updater. The program will automatically offer you the update within the new week, or you can go to the Utilities menu and click on Check for Updates.

Here’s what’s new since v3.5.4:

  • Fixed the bug where saving as 8-bit PNG/GIF/BMP wasn’t always working, usually with larger images.
  • Improved the performance of the Gaussian Blur effect by 30-40%.
  • Improved the performance of all the layer blending modes by 15-30%.
  • Improved the performance of zooming with the mouse wheel on dual-core Intel Atom systems.
  • Updated to support .NET 4.0 if no other version of .NET is installed.
  • Reduced download size from 4.8MB down to 3.5MB.
  • Fixed a small error in the Chinese translation.

Please note that Service Pack 3 (SP3) is now required for Windows XP users. For those using Windows Vista, you must now have Service Pack 1 (SP1) installed. If you do not have these installed, then the Paint.NET installer will open the appropriate download page on Microsoft’s site.


Edit: Updated forum link. Also, this build is now available via the built-in auto-updater!

Visual Studio 2010 and .NET v4 are out! As usual, Scott Hanselman has some good coverage on this so I won’t repeat what he’s already published.

Anyway. Back in January, I announced that Paint.NET would be removing support for XP SP2 and Vista RTM “later this year.” Well, that time has come! From now on, Paint.NET will require XP SP3 or Vista SP1 (or Windows 7 of course). This is a result of migrating to .NET v4. I’ve spent the last few hours upgrading Paint.NET v3.5.5 to Visual Studio 2010 and .NET v4, along with a small army of fixes and changes that come with any big upgrade like this.

So, if you’d like to try out the first version of Paint.NET ported to use the brand spankin’ new .NET v4 …

… then head over to the forum and download it!

Please note that there are no .NET v4 specific changes or upgrades to Paint.NET. None. Please don’t ask me if it’s using System.Threading.Tasks, or Windows Workflow, etc. The answer’s no :) Paint.NET will of course benefit from all of the regular optimizations that are in .NET v4, and this is also serving to pave the road for Paint.NET v4 to have a more seamless upgrade path. It also helps to unify my development setup so that I won’t need two copies of Visual Studio installed. Lastly, it helps to avoid a lot of confusion since otherwise installing .NET v4 would not enable you to install Paint.NET v3.5.4; it would still bark at you to install .NET 3.5 SP1. This is due to .NET’s side-by-side versioning system (which is actually a very good thing).

The forum has been down for most of this week. So, to reward (?) everyone’s patience and understanding I have posted a public beta for Paint.NET v3.5.5 which I blogged about earlier. Things will be back up soon, and I promise it will be worth the wait.

This isn’t available via the built-in updater, and the installer isn’t even digitally signed. It’s a beta and has not been fully tested, so all the usual warnings and scare tactics apply. I’d really like to get everyone’s feedback on the performance improvements :) If they all work out then I’ll make sure more of them get into future releases.

What’s new:

  • Fixed the bug where saving as 8-bit PNG/GIF/BMP wasn’t always working. This often happened when “Auto” bit-depth was selected, and based on the color complexity of the image it would choose 8-bit (for a smaller file-size) and then fail with “error”. Usually this only happened with larger images. This was discussed here on the forum at
  • Improved performance of Gaussian Blur by 30-40% depending on your CPU (Intel Core i7 seems to show the best improvement).
  • Improved performance of all the layer blend modes by 15-30%, depending on your CPU (Intel Atom seems to show the best improvement).
  • Improved performance of zooming with the mouse wheel on dual-core Intel Atom systems.

The download link is over at the forum.

Also, do note that while I say that either of those two Intel chips (i7 or Atom) shows the best improvement, please keep in mind that I haven’t yet benchmarked on any other CPUs (Core 2, Phenom, etc.). I just picked up the new Intel Core i7-980X and it screams (especially at 4 GHz!). Paint.NET is faster than ever, and thankfully so are my build times for Paint.NET v4.0.

There won’t be any new features this time around, of course, since it’s just a +0.0.1 release. There’s only 1 bug that I’ve found which I’ve decided to fix, which has to do with saving “large” 8-bit PNG/GIF/BMP images and is detailed over on the forum (summary: I was using 32-bit integer accumulators and they were overflowing; switching to 64-bit accumulators fixed it). Any plugin that makes use of the built-in quantization code will also be fixed.

So I’ve decided to add some more value to this release in the way of performance optimizations. The first optimization affects an admittedly small population of users: those who have Intel Atom-based nettops. The Intel Atom D510 and 330 chips are dual-core CPUs with HyperThreading and so they show up in Task Manager as 4 CPUs. Normally Paint.NET always uses multisampling to render the canvas. However, if the system has less than 4 CPUs it will use nearest neighbor while doing a zoom in/out with the mouse wheel. Since the Atom reports 4 cores, it was not benefitting from this, but it is now noticably zippier.

The second optimization is for everyone. One thing I’ve been wanting to do for awhile is to move some of the rendering kernels into C/C++ land. The reason for this is that the Visual C++ compiler can do a lot better static optimization than either the .NET JITter or NGEN.

With just a few hours of work today, I’ve managed to make Gaussian Blur about 42% faster. I’ve also applied this trick to the Normal, Multiply, and Overlay blend modes and am getting 15-20% faster performance. The “code” is almost exactly the same except with “uint” swapped for “unsigned __int32”, some marshalling logic, P/Invoke glue, etc. The bang-to-buck ratio here is great.

And of course, your mileage may vary (YMMV). These benchmarks were done on a quad-core Intel Core i7 at 4GHz running 64-bit Windows 7. I also ran them on my dual-core Atom 330, and the improvement was 35% for Gaussian Blur, and 30+% for the blend modes.

With v3.5.5 I will probably limit these optimizations to a few select areas in order to “test the waters.” If stability is good, as determined by the stream of crash logs I get (or don’t!), then I’ll bravely expand to other areas. I expect to release v3.5.5 by the middle of April.

Oh, yeah. On the Paint.NET v4.0 front, the decision has been made: it will require Win7/Vista minimum. I’ve already got most of the interop layer for Direct2D, DirectWrite, and Windows Imaging Component (WIC) written. The first feature to use these was a replacement of “my” super sampling code for WIC’s “Fant” resampling. This means that the quality of Image->Resize when shrinking an image has been greatly improved. I also have a version of the Curves adjustment that uses Direct2D instead of GDI+ for rendering its UI (this was mostly “prove to myself it actually works” code).

Please do remember that Paint.NET v4.0 probably won’t be available until late 2011 – you have plenty of time to enjoy XP with Paint.NET v3.5.x in the meantime if that’s the way you roll (and it’s not like I can delete it off your box once 4.0 ships, nor would I if I could). As a pre-emptive snark, in true Raymond Chen style: this was a decision I made after much deliberation with both quantitative and qualitative data, and spamming my comment box won’t change my mind. Your voice has already been heard. Thanks in advance.

This is another small update that fixes a few bugs. It also optimizes the Image->Flatten command for multiple CPUs/cores.

You can either use the built-in updater from the Utilities menu, or go to the website and download it. There’s no need to uninstall the old version; that will be taken care of automatically.

Changes and fixes since v3.5.3:

  • Improved performance of the Image->Flatten command by making it multithreaded.
  • Fixed the File->Save As dialog not opening to the correct folder.
  • Fixed a crash with certain plugins and their use of the File Open dialog.
  • Fixed a very rare crash with the toolbar’s font list.

By the way, this comic is completely true.

This update fixes a few small bugs.

You can either use the built-in updater, or go to the website and download it. There’s no need to uninstall the old version; that will be taken care of automatically.

Changes and fixes since v3.5.2:

  • Fixed DirectDraw Surface (.dds) file format support for CPUs which do not have SSE2 (Pentium III, Athlon XP)
  • Fixed an issue with the File->Save dialog related to file type plugins that were only written for opening (importing).
  • Fixed some crashes which were supposed to be "out of memory" errors.
  • Fixed a race condition with the New Image, Canvas Size, and Resize dialogs. If you typed extremely fast you could cause a crash by typing a negative number and immediately pressing OK or Enter.
  • Fixed a File->Save dialog issue in Win7/Vista where it could ask you about overwriting the wrong file.

Happy new year! Like I talked about last week, this update resolves some feature disparities in the Text tool between GDI (XP) and DirectWrite (Win7/Vista). It also improves overall performance, as well as the correctness and quality of the Move Selected Pixels tool, the Image->Resize function, and the Hue/Saturation adjustment.

You can either use the built-in updater, or go to the website and download it. There’s no need to uninstall the old version; that will be taken care of automatically.

Changes and fixes since v3.5.1:

  • All font face variants (e.g., Arial vs. Arial Narrow) are now available with the Text tool in Win7/Vista with DirectWrite.
  • Bitmap font types (e.g. Courier, Terminal, Fixedsys) are now available with the Text tool in Win7/Vista.
  • Fixed some bad text kerning with the Text tool at small font sizes when antialiasing was turned off.
  • For the Image->Resize function, the quality, correctness, and performance of Bilinear and Bicubic sampling modes have been improved. Super Sampling also has some performance improvement.
  • Improved the rendering quality for the Hue/Saturation adjustment. Also made a new icon for it.
  • Fixed many subtle rendering issues with the Move Selected Pixels tool. These were apparent when flipping or rotating a selected area.
  • Fixed: The Line/Curve tool was applying pixel snapping to the curve nodes, which caused lines to "bend" when using the Shift key to constrain the angle.
  • Fixed some extraneous CPU usage related to unnecessary or redundant thumbnail updates.
  • Fixed a few dialogs that looked wrong with Aero glass with Remote Desktop or Virtual PC.
  • Fixed a nasty memory leak with Flatten followed by Undo.
  • Fixed some issues related to effects that took awhile to cancel. As it turns out, drag-and-drop was enabled at this time, which easily lead to crashes or hangs.
  • Some Win7 systems could not detect that .NET 3.5 SP1 was installed, even though it was. A fallback detection function has been added.
  • For plugin authors, the Effect class now has a pollable IsCancelRequested property. This can be used to improve responsiveness for expensive OnSetRenderInfo() implementations which are otherwise non-interruptible.
  • For plugin authors, the Surface.FitSurface() method is now optimized to use multiple threads, which improves performance.

Get every new post delivered to your Inbox.

Join 250 other followers