Rick Brewster

Administrators
  • Content count

    14,606
  • Joined

  • Last visited

  • Days Won

    91

Everything posted by Rick Brewster

  1. This should fix the 2 plugin crashes that AndrewDavid encountered. https://www.getpaint.net/files/zip/preview/paint.net.4.17.6404.22788.install.zip Previous days' builds are 6402 and 6403: adsf
  2. This update improves performance and fixes a lot of small issues. As usual, you can download the update directly from the website, or you can use the built-in updater via Settings –> Updates –> Check Now. This is a minor update in the sense that it’s mostly a basket full of fixes and improvements. To me it feels like a larger release though While it doesn’t have any new features, it’s fixing and cleaning out a whole bunch of longstanding things that I’ve wanted to tackle for awhile. I’ve been chipping away at things pretty steadily since the release of 4.0.16, so this really is about 3 full months worth of fixes and improvements! At Microsoft we would’ve called this an “MQ” (Milestone Quality) release. For instance, the animation timer in version 4.0.16 runs at 120Hz. Always. The Win32 APIs for correctly detecting the monitor’s refresh rate are such a maze. They are archaic, bizarre, and the documentation is barely satisfactory. For this release I finally took the time to figure it all out and get the timer to run at the monitor’s actual refresh rate (it also works if you move the window across monitors with different refresh rates). I’m thinking of writing a blog post about it, in fact, because I don’t think anyone else should have to deal with that ever again. It sounds like it should be so simple, but there are always peculiarities and ambiguities that can trip things up. Not too surprisingly, this improves performance if you’re opening a lot of images: the image strip up at the top of the window uses several animations and it really gets bogged down, but now it’s actually much faster. This should also help battery life for laptop users (it won’t change things much for my new overclocked i9-7900X ). Also, there are a handful of bugs in Windows and Direct2D that this release is working around. The “Creators Update” for Windows 10 includes the .NET Framework 4.7 and they totally broke the way mouse cursors work for WinForms in high-DPI situations. The result was that 4.0.16 has some really ugly mouse cursors if you’re running at anything other than 100% scaling (aka 96 DPI). So I spent a bunch of time to work around that and write completely custom cursor loading code, which also came with the bonus of providing me with new control over how this whole system works within Paint.NET. The Win32 cursor system is an old, archaic, weird system, one that’s made worse by the various wrappers which are built on top of it (e.g. WinForms or WPF). Now I’ve got the ability to provide high resolution and high color cursors. I can do pretty much anything with them now, and would like to upgrade the Win95-era cursors in a future release. Also, I’ve implemented a “portable mode” that I’ll be describing in a follow-up post. It redirects the app’s settings into a local JSON file instead of having them in the registry. I know there are at least a handful of people who’ve been hoping for something like this for a long time – now your USB key can carry your personal settings with you from computer to computer. Next up for Paint.NET: Windows Store! Once that’s done, I’m planning to upgrade the brushes system. It desperately needs more built-in brush shapes, as well as the ability to install custom ones. Anyway, without further ado, here’s the change list! Added: "Fluid mouse input" option in Settings -> UI -> Troubleshooting. If you see major glitches while drawing, try disabling this. Improved: Default brush size, font size, and corner radius size now scales with major DPI scaling levels (brush size of 2 at 100% scaling, brush size of 4 at 200% scaling, etc.) Improved: Default image size now scales with major DPI scaling levels (800x600 at 100%, 1600x1200 at 200%, etc.) Improved performance and drawing latency by removing explicit calls to System.GC.Collect() except when low memory conditions are encountered Improved performance by greatly reducing object allocation amplification by reducing the concurrency level when using ConcurrentDictionary, and by removing WeakReference allocations in favor of direct GCHandle usage Improved: Performance and battery usage by ensuring animations always run at the monitor's actual refresh rate Improved (reduced) CPU usage when moving the mouse around the canvas Removed: "Hold Ctrl to hide handle" from the Text tool because it was not useful and caused lots of confusion Fixed: Various high-DPI fixes, including horrible looking mouse cursors caused by a bug in the latest .NET WinForms update Fixed: Gradient tool no longer applies dithering "outside" of the gradient (in areas that should have a solid color) Fixed: Very slow performance opening the Effects menu when lots of plugins are installed after installing the Windows 10 Creators Update Fixed: When cropping and then performing an undo, the scroll position was totally wrong Fixed a rendering glitch in the Save Configuration dialog (it would "wiggle") Fixed: At certain brush sizes, the brush indicator on the canvas had a visual glitch in it due to a bug in Direct2D Fixed: Text tool buttons for Bold, Italics, Underline were not localized for a few languages Fixed a rare crash in the taskbar thumbnails Fixed: Drawing with an aliased brush and opaque color (alpha=255) sometimes resulted in non-opaque pixels due to a bug in Direct2D's ID2D1RenderTarget::FillOpacityMask Fixed: "Olden" effect should no longer cause crashes (it still has some rendering artifacts due to its multithreading problems, however) New: Portable mode can be enabled via a setting in the .exe.config, which will redirect app settings into a local JSON file (see blog/forum post for details) Enjoy!
  3. paint.net 4.0.17 is now available!

    (Please note that the update manifests are still uploading to the website and this can take awhile. So, the built-in updater may not offer you the update for a little bit ...)
  4. paint.net 4.0.16 is now available

    Locking this -- new update is incoming!
  5. This is a hotfix for a crash that results from copying images from some web browsers. Unfortunately this seems to be the result of a bug in either the .NET Framework or Windows. I'll try to follow up with folks at Microsoft when I have some time to do so. As usual, you can download the update directly from the website, or you can use the built-in updater via Settings –> Updates –> Check Now. Change log: Fixed a crash or hang that sometimes happens when copying images from Internet Explorer, Edge, or Firefox, and then using File->New or Edit->Paste in paint.net
  6. Lightning v1.1

    I get the same crash in 4.0.16. This plugin is busted :-\
  7. paint.net 4.0.17 beta build 6404

    Lightning also crashes in 4.0.16 for me. Plugin's broken.
  8. paint.net 4.0.17 beta build 6404

    Did it work in 4.0.16 though ... ?
  9. merging threads ... still getting a few reports of this
  10. You're using the latest version, right? One of your screenshots showed you had the installer for 4.0.13, not 4.0.16 ...
  11. paint.net 4.0.17 beta build 6404

    There shouldn't be a need for BoltBait to rewrite the plugin. I would expect a fix in the next .NET Framework update. I just hope Microsoft does that sooner rather than later. I already commented on the github issues but I don't know if anyone's even paying attention to that.
  12. NormalMapPlus v1.0

    I'm pretty sure the AccessViolationException is a bug in .NET: https://github.com/dotnet/coreclr/issues/10826 I'm referring to this comment specifically:
  13. paint.net 4.0.17 beta build 6404

    After some investigation, that seems to be due to a bug in .NET itself. I think it's this one: https://github.com/dotnet/coreclr/issues/10826 This would also explain the AccessViolationException reported in NormalMapPlus and the fact that disabling JIT optimization fixes it:
  14. This tutorial is available as a PDF. Click here to view or download the PDF The goal of this tutorial is to recreate the Classic Camaro image that is on the front page of http://www.getpaint.net . The idea came about to have a classic Camaro and mix in some simple, modern imaging effects so that the image fades from a "classic" look on the left, to an exaggerated modern look on the right. So we'll be taking this: and turning it in to this: Step 1. Download http://www.getpaint.net/images/Camaro800x600.jpg to get started. (No I will not provide the original 7 megapixel version of the image, however a 1920x1200 version of the edited image which is suitable for desktop wallpaper use is available here: http://www.deviantart.com/deviation/43974184/ ) Step 2. Open it in Paint.NET v3.0 Step 3. Duplicate the background layer (Layers -> Duplicate) and then apply the Sepia adjustment to this new layer (Adjustments -> Sepia) Step 4. Apply a blur to this layer (Effects -> Blurs -> Gaussian Blur). I used a 2 pixel radius for this. Step 5. Switch to the Gradient tool, and make sure it is set to: Linear gradient, Transparency Mode, and Normal Blending. These options are in the toolbar right below the buttons for quick actions like New, Open, Save, and Print. Next, draw a gradient from the rear window of the car to somewhere closer to the front of the car. Because this image is small and the nubs are very difficult to see, I have drawn a green line to indicate where I have placed the two nubs of the gradient tool. In practice, drawing with the gradient tool is in fact much like drawing a line except that you don't get to see the line: Well that looks cool. To get a better feel for what you have done, you can turn off the bottom layer to see what the top layer looks like: As you can see, this tutorial's effect works by removing portions of the top layer in order to let the bottom layer show through. I suppose it is also possible to reverse the roles of the layers (sepia on bottom, normal on top) and achieve this same effect if you drew the gradient in the opposite direction. You should re-enable the checkbox/visibility for the bottom layer at this point, if you haven't done so already. Step 6. Now we want to oversaturate the original part of the image. To do this, click on the bottom layer and then duplicate it. Next, set this layer's properties to: Glow blend mode, 118 opacity. Technically you can set it to whatever opacity gives you your desired effect -- I just happened to use 118 for this example. Voila. Or, as we sometimes say, Q.E.D.! There are other things you can experiment with, such as adding low-saturated noise to the sepia layer (Effects -> Add Noise) that can further refine the "classic" or noire look of that portion of the image.
  15. This is probably an artifact of the Magic Wand tool not using premultiplied alpha for its calculations. If this is the case, then the pixels in the brand new layer will be transparent white (R=255, G=255, B=255, A=0), but then when you move things around (presumably with Move Selected Pixels? it wasn't clear whether you were moving the selection or the pixels), you should then see transparent black pixels (R=G=B=A=0). They're supposed to be equivalent (transparent is transparent) but the Magic Wand tool still has a bug in it w.r.t. this.
  16. This build has all the fixes detailed for the previous build, 6402, along with fixing the very common crash reported by AndrewDavid. This crash was new for 4.0.17 beta build 6402 and did not happen in 4.0.16. Download link removed -- there's a newer build For reference, here is the post for 4.0.17 beta build 6402 along with its changelog:
  17. paint.net 4.0.17 beta build 6403

    Newer build should fix this:
  18. Yeah I've needed this myself, I'll file a bug to track this
  19. Selections are based on geometry, not pixels. That would not be simple to achieve, it would actually be a complete rewrite of how selections operate in Paint.NET.
  20. Send that over to the 4.0.17 thread -- I probably need to fix that in paint.net itself
  21. Paste From Clipboard

    Send that over to the thread with the 4.0.17 build -- I probably need to fix that in paint.net
  22. paint.net 4.0.17 beta build 6403

    I fixed the link almost immediately -- you were just really fast to download after my initial post
  23. This is a public beta/preview of the soon-to-be-released 4.0.17 update. There are a lot of small fixes and changes and so I'm actually releasing a beta. This is not available via the built-in updater, even if you have "Also check for betas" enabled. This saves me a ton of time -- it task about as long to publish a beta that way as it does to publish a regular release. Here are the changes, which aren't sorted very well (like by importance/relevance): Fixed very slow performance opening the Effects menu when lots of plugins are installed after installing the Windows 10 Creators Update Fixed: Gradient tool no longer applies dithering "outside" of the gradient (in areas that should have a solid color) Added: "Fluid mouse input" option in Settings -> UI -> Troubleshooting. If you see major glitches while drawing, try disabling this. Fixed: When cropping and then performing an undo, the scroll position was totally wrong Fixed a rendering glitch in the Save Configuration dialog (things would "wiggle") Improved: Default brush size, font size, and corner radius size now scales with major DPI scaling levels (brush size of 2 at 100% scaling, brush size of 4 at 200% scaling, etc) Improved: Default image size now scales with major DPI scaling levels (800x600 at 100%, 1600x1200 at 200%, etc.) Improved: Removed "hold Ctrl to hide handle" from the Text tool because it was not useful and caused lots of confusion Improved performance and drawing latency by removing explicit calls to System.GC.Collect() except when low memory conditions are encountered Improved performance by greatly reducing object allocation amplification by reducing the concurrency level when using ConcurrentDictionary, and by removing WeakReference allocations in favor of direct GCHandle usage Improved (reduced) CPU usage when moving the mouse around the canvas Fixed: At certain brush sizes, the brush indicator on the canvas had a visual glitch in it due to a bug in Direct2D Fixed: Text tool buttons for Bold, Italics, Underline were not localized for a few languages Fixed: Various high-DPI fixes, including horrible looking mouse cursors caused by a bug in the latest .NET WinForms update Fixed a rare crash related to taskbar thumbnails Fixed: Drawing with an aliased brush and opaque color (alpha=255) sometimes resulted in non-opaque pixels due to a bug in Direct2D's ID2D1RenderTarget::FillOpacityMask Fixed: "Olden" effect should no longer cause crashes (it still has some rendering artifacts due to its multithreading problems, however) New: Portable mode can be enabled via a setting in the .exe.config, which will redirect app settings into a local JSON file (see blog/forum post for details) Download link ... none here, there's a newer build
  24. paint.net 4.0.17 beta build 6402

    Okay, new build posted with the fix: