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

The primary goal of this update is preparing for the v4.0 release: v3.5.10 will not be able to offer the v4.0 update, but v3.5.11 will. I’m not a fan of putting out an update for purely infrastructure purposes so I’ve also reverse-ported a handful of low-risk improvements from the v4.0 code base. This way we all win.

As usual, you can download it directly from the website or you can use the built-in updater via Utilities –> Check for Updates.

Here are the changes for this release:

  • Fixed: The Gaussian Blur effect was incorrectly calculating alpha values for non-opaque pixels. (http://forums.getpaint.net/index.php?/topic/18483-gaussian-blur-mistreats-alpha/)
  • Improved performance of the Sharpen effect by about 25%
  • Improved performance of the Median effect by about 30%
  • Improved performance of the Fragment effect by about 40%
  • Improved performance of the Unfocus effect by about 100%
  • Reduced memory usage when many selection manipulation operations are in the history/undo stack (the undo data is now saved to disk)
  • The built-in updater now supports upgrading to paint.net 4.0 (once it’s available)

When I announced the beta for v3.5.11, I also talked a little about 4.0 and the progress that’s been made. If you haven’t read that, please catch up!

There have been rumors floating around that Paint.NET is “dead.” This is not true! Smile The 4.0 update has simply been a huge project, and I only have a limited amount of time at my disposal. (Apparently if you go 22 months without an update, that means “dead” in Internet years. Sorry!) Plus, sometimes you just want to go out and enjoy summer instead of writing code.

For comparison, v3.5.11 is about 203,000 lines of code, whereas v4.0 is at about 391,000. What’s new? Well, it has a brand new, asynchronous, fully multithreaded, hardware accelerated (via Direct2D) rendering engine that performs very happily with huge and large images, all while consuming less memory than v3.5. I’m not exaggerating the performance scaling either: whether you’ve got a 16-core Dual Xeon or a 400 megapixel image, paint.net 4.0 will be quite happy (other combinations are also very copacetic, of course).

The whole UI has been updated to use newer rendering toolkits such as Direct2D and DirectWrite, and the main window has a greatly simplified and consolidated layout. All of the drawing tools have been updated to use the new rendering system along with a new “fine-grained” history system (to clarify: the UI for history is the same, but the underlying code is radically different). It’s made possible a much richer “WYSIWYG” model for editing which is exemplified by the new Paint Bucket and Magic Wand tools. Selection rendering quality and performance are way up. The brush tools (Paintbrush, Eraser, Clone Stamp, Recolor) now support soft brushes, and the new Shapes tool replaces the 4 separate shape tools that are in v3.5 while providing many more shapes to use. There are also a bunch of other small, miscellaneous improvements that span across the UI and tools, including things like “Copy Merge” and antialiased selection rendering.

Anyway, enjoy!

This is probably not the update you were expecting Smile I need to push out an update to v3.5 in preparation for the eventual release of v4.0, and it’s necessary to do this sooner rather than later to make sure everyone is up-to-date by then. I’m releasing a “beta” today to make sure everything is still working (compilers, packagers, updaters), and then I’ll be pushing out the Final/RTM in a few days.

The primary goal of this update is preparing for the v4.0 release: v3.5.10 will not be able to offer the v4.0 update, but v3.5.11 will. I’m not a fan of putting out an update for purely infrastructure purposes so I’ve also reverse-ported a handful of low-risk improvements from the v4.0 code base. This way we all win.

As usual, you can download it directly from the website or you can use the built-in updater. Make sure that you enable “Also check for pre-release (beta) versions,” which you can do by going to Utility –> Check for Updates, and then clicking on the Options button.

Here are the changes for this release:

  • Fixed: The Gaussian Blur effect was incorrectly calculating alpha values for non-opaque pixels. (http://forums.getpaint.net/index.php?/topic/18483-gaussian-blur-mistreats-alpha/)
  • Improved performance of the Sharpen effect by about 25%
  • Improved performance of the Median effect by about 30%
  • Improved performance of the Fragment effect by about 40%
  • Improved performance of the Unfocus effect by about 100%
  • Reduced memory usage when many selection manipulation operations are in the history/undo stack (the undo data is now saved to disk)
  • The built-in updater now supports upgrading to paint.net 4.0 (once it’s available)

As for paint.net 4.0, progress has been speeding up. All of the tools have been ported and upgraded for the new rendering and history systems, and there’s only 1 or 2 small feature left. Once those are done, which should be soon since they’re fairly simple and straightforward, I’ll be in strict bug fixing mode in preparation for a public alpha release! As usual I have no promises as to when this will happen, but we’ll go with “soon.”

Another recent change in 4.0 that I’m very happy about is further improvements to selection rendering performance. I talked about this awhile ago when I detailed how the selection is now rendered using background threads and hardware acceleration. Back then I also said, “Manipulating selections is still just as slow as it ever was, and over time I plan to move that work off the UI thread.” Well I’m happy to report that I’ve now been able to move almost all of the remaining CPU-intensive geometry processing off the UI thread, and I’ve also added a few other tricks that make it so that most selection manipulation can be done at a full 30-60 frames per second! If you’ve ever drawn a complex selection, either by hand or with the Magic Wand, and then proceeded to move/scale/rotate it with the Move Selection tool, you’ve probably experienced severe lag. This is all now almost entirely gone, and it is very cool stuff, and it’s not isolated to that scenario.

This video showcases some of the things I can do with the new rendering engine and tool transaction system in paint.net 4.0. Even the Paint Bucket tool can get awesome “WYSIWIGEWYEI” (What You See Is What You Get … Especially While You’re Editing It, which needs a better name) and Fine-Grained History (you can undo/redo every change, not just those that commit pixels to the layer).

One big annoyance of the Paint Bucket tool in every imaging app out there is that it doesn’t do a good job of letting you explore and be creative. There are two primary “inputs” for it: the origin point (where you clicked), and the tolerance setting. Where you click determines the point at which the flood fill algorithm is executed from, and which color is used as the basis for comparing to other colors to see if they are at a “distance” (Euclidean) that is less than the tolerance value. Colors that are at a distance less than the tolerance are filled in with whatever color or pattern you specify. Black and white are as far apart as possible and require a high tolerance value to “notice” each other, while shades of the same color are computed as relatively close to each other and will be included with lower tolerance values.

What happens in most imaging apps* is that you click somewhere with the Paint Bucket tool, look at the result, and decide that either you wish you’d clicked somewhere else or used another tolerance value. On a rare occasion, it looks perfect and you’re done.

Then you click undo.

Next, you click somewhere else, possibly after editing the tolerance in the toolbar. Then you realize it’s not exactly what you want, so …

Then you click undo. And repeat. And repeat, and repeat, and repeat.

In paint.net 4.0 I’m working to finally get rid of that repetition, which is work I started with the new Gradient tool I added back in 3.0 (2006!). Once you click somewhere with the Paint Bucket tool, you can go edit the tolerance in the toolbar which essentially causes your click action to be re-executed. You can also move your mouse down into the canvas where you clicked, and drag around a handle which will move the origin point. You can change the color, or anything else that affects how the fill is rendered. You can use the undo and redo commands to walk through every adjustment that you’re trying out.

This is a very powerful addition to the tools in paint.net which really enables you to quickly explore the creative landscape in a way that no other image editing software can. It also lets you gain an intuitive understanding of settings that do not necessarily lend themselves to short, intuitive descriptions (like tolerance!), but which are easily learned through interactive exploration. This video was recorded a few weeks ago. Since then I’ve added antialiasing as well as the ability to choose between sampling the current layer or the whole image, and have also made other performance improvements. (I’ve also removed the “old” Paint Bucket tool, which is why you see the “new” version of it sitting at the bottom of the Tools window in the video.)

This is my first video posting, we’ll see how it goes! I didn’t think I could properly discuss this feature with just words and pictures.

* every one that I know of, but I used the word “most” just in case I’m wrong Winking smile

It’s been awhile since I talked about some of the smaller features that have been implemented for Paint.NET 4.0. So, without further ado …

Light Color Scheme

Paint.NET 3.5 uses a blue color scheme. For 4.0, you can still use that but the default is now the “Light” color scheme. The differences can be subtle but change is nice to have. The light theme also uses a gray canvas background (#CFCFCF to be precise), which can be important for color matching.

 
 

Color Picker Enhancements

Ed Harvey, who wrote and has been maintaining "Ed Harvey Effects,” one of the most popular and interesting plugin packs, has contributed some more features to Paint.NET 4.0 recently. The first two are in the Color Picker and give you the ability to set the sampling size as well as whether it will sample just the current layer or the whole image:

Copy Merged

Ed Harvey is also responsible for implementing another highly requested feature, Copy Merged. When you have a selection active, Edit->Copy will take the pixels from the current layer, while Edit->Copy Merged will use the whole image. In Paint.NET v3.5 you could do this but it required you to 1) Flatten the image, 2) Copy, and finally 3) Undo the Flatten. Paint.NET 4.0 will let you do that in one keystroke, and mirrors Photoshop’s functionality and keyboard shortcut. It also means you don’t have to wipe out your Redo history.

Tool Blending Modes

Paint.NET has always had an option to let you choose between Normal and Overwrite blending. The latter is necessary if you ever want to use anything but the Eraser tool in order to “draw transparent pixels.” This has been extended to include all of the layer blend modes, and still includes Overwrite. Currently this only works on the tools which have been upgraded to the new rendering system, namely the Pencil and Gradient tools, but all the others will be upgraded in due time. (I have already started upgrading the shape tools, for instance.)

Here’s an example comparing Normal and Xor blending modes with a rounded rectangle*:

Layer Reordering with Drag-and-Drop

In Paint.NET v3.5 you have to use the cumbersome Move Layer Up and Move Layer Down buttons to change layer ordering. Paint.NET 4.0 adds what you would naturally want to do here, namely the ability to just drag-and-drop the layers to reorder them. In addition, there are some nice animations for this and all the other things that can change the contents of the Layers window.

Antialiased Selections

Whenever you have a selection active, all drawing is clipped to it. Paint.NET 4.0 can finally do this clipping with antialiasing. This results in a much smoother edge. This was actually quite simple to implement with the new rendering engine that’s in place for 4.0. (Note: Feathered selections and other gizmos are another matter entirely and will hopefully make it into a post-4.0 release without too much of a wait.)

The first option gives you the same rendering that Paint.NET v3.5 and earlier uses. The second uses 2×2 super sampling on the clipping mask, and the third uses 3×3 super sampling. I experimented with 4×4 super sampling but the improvement wasn’t very noticeable; in addition, performance went down and memory usage went up.

Here’s an example of the quality levels with a circular selection that’s had a gradient drawn inside of it:

Right now the default is Antialiased (2×2 super sampling). I’ll be doing some further experimenting, and decide whether the default should be High Quality and whether the “normal quality” option should even be present.

Anyway, that’s all for now!

* Astute readers may notice that the rounded rectangle’s corner radius does not match what 3.5 uses … yes, this will finally be configurable. Right now I’ve just got a test tool that renders a fixed size, but in short order the shape tools will get some fantastic upgrades, including configuring the corner radius for a rounded rectangle.

As promised, here’s the update that fixes the shortcut keys for View –> Actual Size.

And as usual, you can either use the built-in updater from the Utilities menu, or you can download and install directly from the website: http://www.getpaint.net/. There’s no need to worry about removing the old version; that is all handled automatically.

The official changelist:

  • Fixed: Ctrl+Shift+A now works again as a shortcut for View -> Actual Size (broken in 3.5.9)
  • Fixed: Ctrl+0 still works for View -> Actual Size even if 10 or more images are open (broken in 3.5.9, it would switch to the 10th image).

Enjoy!

As usual, you can either use the built-in updater from the Utilities menu, or you can download and install directly from the website: http://www.getpaint.net/. There’s no need to worry about removing the old version; that is all handled automatically.

Here’s the changes from v3.5.8:

  • Improved: The "Auto-detect" bit-depth setting for PNG, BMP, and TGA now also determines which bit-depth to use based on which one produces the smallest file size, as well as which ones can save the image without losing fidelity.
  • Improved: You can now use Ctrl+0 as a shortcut key for View -> Actual Size, in addition to Ctrl+Shift+A and Ctrl+Alt+0.
  • Fixed: Some text in the DirectDraw Surface (DDS) Save Configuration UI was not being loaded.
  • Fixed: Some DirectDraw Surface (DDS) files authored with other software (e.g. Unreal 2004) could not be loaded.
  • Fixed: In some rare circumstances, clicking on the Save button in the toolbar would crash.
  • Fixed: The Korean translation has been added back in, with the help of Bing machine translation to cover the few remaining strings that were untranslated.

Also, fixes since the 3.5.9 Beta include a few compatibility issues with plugins.

Enjoy!

This is a minor update to Paint.NET v3.5. It has some bug fixes, and also adds back in the Korean translation (thanks to Bing translator).

As usual, you can download it directly from the website or you can use the built-in updater. Make sure that you enable “Also check for pre-release (beta) versions”, which you can do by going to Utility –> Check for Updates, and then clicking on the Options button.

Here’s the changes from v3.5.8:

  • Improved: The "Auto-detect" bit-depth setting for PNG, BMP, and TGA now also determines which bit-depth to use based on which one produces the smallest file size, as well as which ones can save the image without losing fidelity.
  • Improved: You can now use Ctrl+0 as a shortcut key for View -> Actual Size, in addition to Ctrl+Shift+A and Ctrl+Alt+0.
  • Fixed: Some text in the DirectDraw Surface (DDS) Save Configuration UI was not being loaded.
  • Fixed: Some DirectDraw Surface (DDS) files authored with other software (e.g. Unreal 2004) could not be loaded.
  • Fixed: In some rare circumstances, clicking on the Save button in the toolbar would crash.
  • Fixed: The Korean translation has been added back in, with the help of Bing machine translation to cover the few remaining strings that were untranslated.

As for paint.net 4.0, progress has been slow the last few months because I’ve been rather busy at work. I work at Microsoft in Windows on a little project called Windows Performance Analyzer (formerly known as “xperf” in some circles). The new version has a completely new UI written using WPF. Our PM, Michael Milirud, presented this at BUILD last week: http://channel9.msdn.com/Events/Speakers/michael+milirud . I highly recommend checking it out, although I’m biased of course Smile

One of the features I’m planning for 4.0 is tentatively titled “Shapes.” Right now you can only draw rectangles, ellipses, lines, and (admittedly lame) freeform polygons. Even MSPaint in Win7 has a larger shapes library. The idea I’ve got is to ship with a much larger list of built-in shapes, but also to allow users to install new shapes (from the forum, or their own imagination, or from wherever). The idea is to use XAML as the serialization format, and to make it compatible with WPF’s Drawings and Geometry objects. This way you can use any existing XAML editor to create the shape. (And this also means I don’t have to write an authoring tool!)

I already have the data format working – I have my own Geometry classes that wrap Direct2D, and was able to get them to roundtrip using XamlServices from System.Xaml.dll (I was quite amazed really – it worked the first time!). Since WPF and Direct2D use the same object model for their Geometry classes, it should be no trouble to auto-convert from WPF XAML files, thus eliminating the need for little annoying conversion utilities. So a XAML shape could use either the Paint.NET Geometry classes, or WPF’s. Probably sitting in a ResourceDictionary. Now, Geometry objects only describe shape outlines, with no fill or stroke parameters. The next thing is to add “Drawing” support. Each element of a Drawing contains a Geometry*, but also includes details about stroke color, stroke thickness, and a fill brush. Imaging you have a vector version of a company logo, with specific brush stroke and fill colors. You could plug that into Paint.NET and use it to draw. And yes, you’d be able to use solid colors as well as gradient brushes.

* In WPF, a Drawing can also contain other elements such as bitmaps or text or whatever.

I’m announcing this now so that everyone has plenty of time to do whatever. I’ve already said before that Paint.NET 4.0 will not work on Windows XP, but I’ve also recently decided to drop Vista as well. The minimum OS will be Windows 7, and it will not work at all on Vista or XP.

Now you know.

… puts on flame-retardant clothing …

As usual, you can either use the built-in updater from the Utilities menu, or you can download and install directly from the website: http://www.getpaint.net/. There’s no need to worry about removing the old version; that is all handled automatically.

This update fixes some issues with the fault-tolerant save functionality introduced in 3.5.7.

Oh, and I’d like to point out that even with these fixes, the original “mission” of fault-tolerant saving was being upheld. In previous versions, if errors or crashes happened while saving, the original file would be lost (honestly it’s a bit inexcusable that I waited so long to fix this!). In v3.5.7 it had some trouble saving the new contents in some situations, but the overall strategy was working because the original contents were still there. Since saving is such an important task to have working correctly, I’ve decided to roll out this update very quickly without attempting to roll in any other improvements.

Changes since v3.5.7:

  • Fixed: Saving to a folder that has been moved or renamed will display an error instead of crashing (regression from 3.5.6)
  • Fixed: Saving to a Sharepoint site will now work (regression from 3.5.6)
  • Fixed: Saving to a file that is marked as read only will now give an error instead of crashing (regression from 3.5.6)
  • Fixed: General reliability and correctness improvements to fault-tolerant saving

Enjoy!

As usual, you can either use the built-in updater from the Utilities menu, or you can download and install directly from the website: http://www.getpaint.net/. There’s no need to worry about removing the old version; that is all handled automatically.

This update improves reliability of saving, further improves Copy/Paste functionality, and fixes some other miscellaneous bugs.

Here’s the list of changes since v3.5.6:

  • Saving an image is now fault-tolerant. If there is an error or crash while saving, the original file will be left alone.
  • Worked around a bug in some plugins that are incorrectly using the built-in Gaussian Blur effect. For example, Sharpen+. Now they won’t crash.
  • Fixed a bug with Edit->Paste into New Image, where the new image would be 1 pixel too wide or tall, as reported at http://forums.getpaint.net/index.php?/topic/20969-paste-problem/
  • Fixed a bug with the Rectangle Select tool and Fixed Ratio selection, which would be off by 1 pixel, as reported at http://forums.getpaint.net/index.php?/topic/20820-croppig-by-fixed-ratio-is-inexact
  • When pasting an image from Paint.NET into Paint.NET, it will be a little smarter about where it puts the image. Previously, if the location wasn’t within the viewport, it would be placed at the top-left corner of the viewport. Now it will find the nearest point along the edge of the viewport to place the image.
  • The EXIF rotation ("orientation") metadata is now discarded when opening an image, which was causing aggravation with images that could then never be reoriented correctly using Image->Rotate
  • The EXIF tags for JPEG thumbnail data are now correctly discarded.
  • Fixed a handful of memory leaks.
  • Fixed a typo in the Italian translation. In the setup wizard it was referring to "Pain.NET" (woops)

Enjoy!

Follow

Get every new post delivered to your Inbox.

Join 262 other followers