Jump to content

Brush Factory v2.0.2 (May 3rd, 2021)


Recommended Posts

He's asking for the ability to make the brush strokes lag behind the cursor to a distance, which allows the brush strokes to be smoother. They're currently made by repeating the brush image X amount of times along a line based on the "density" of the brush stroke which is measured relative to the size of the brush. This is how paint.net draws lines as well (you can see the actual lines if the program lags while you draw, or if you draw really fast in circular motions). The main advantage to this method is that there are no "gaps" as would occur if you just draw at the current mouse position every frame. But I digress.
 

On 9/18/2020 at 8:00 PM, Metalistic said:

tool that slow down the speed of the brush to make smooth draw

You're in luck because this is a listed feature I intend to support anyway. I might as well get around to it. All I need is to set the draw point as soon as the mouse is clicked. Instead of creating a line from the draw point to the mouse position every frame, I need to get the angle and magnitude of the vector and use some % of the magnitude towards the mouse point, then update the draw point to the new location. This should simulate what you get from most other programs, where the brush stroke lags behind the cursor position.

There is a better way to do it, which is to adjust the positions of the points so they're "smoother". This is a lot harder and requires drawing on a separate surface and updating the drawn image as the points adjust. The advantage is that the brush strokes are simply smoother without lagging the cursor. Both methods have their merits. I'll go with the first because I don't have to change the entire way that Brush Factory draws. I'll see what I can do when I get off work later.

  • Like 1
  • Upvote 1

Untitled.png.28dedeebdce78c42589f24716981923f.png

Link to comment
Share on other sites

Hi, love the plugin! I was wondering if there was a way (or you can implement one) to apply a texture to the image used for the brush shape itself, instead of only solid colors (when I'm using black templates). Say you could select a section of an image, and then the shape you want to overlay it onto, so you could give your brush the texture of gold paper, or even part of another picture inside the shape.

TriquetraRedleaf.png.d2af89ba306966e273b548de01742efe.png

Yeah you could just put the texture on the image outside the app, but if you want to try multiple textures on the same image you have to keep doing it externally and saving as separate file, so it's not very fast and breaks your flow. The good thing about it being in a brush is you can effortlessly copy the same image 

Link to comment
Share on other sites

Hi and welcome @SabreS.  🙂

 

While waiting for Joshua's reply, I recommend using Creative Text Pro, which allows you to put any texture on text and objects.

 

Read the post carefully for full instructional use. I find myself using this plugin a lot. It's for so much more than text.

  • Upvote 1
Link to comment
Share on other sites

On 9/24/2020 at 12:06 PM, SabreS said:

Hi, love the plugin! I was wondering if there was a way (or you can implement one) to apply a texture to the image used for the brush shape itself, instead of only solid colors (when I'm using black templates). Say you could select a section of an image, and then the shape you want to overlay it onto, so you could give your brush the texture of gold paper, or even part of another picture inside the shape.

 

Yeah you could just put the texture on the image outside the app, but if you want to try multiple textures on the same image you have to keep doing it externally and saving as separate file, so it's not very fast and breaks your flow. The good thing about it being in a brush is you can effortlessly copy the same image 

There is a way, actually, which has been around since the first version of this plugin. :)
Just make sure "colorize brush" is off and it won't use the current color:

image.png.642a1e39fa1e0bd220b661200ecbde58.png
That's it! If you're using a brush that has colors in it, you can go ahead from there. To reuse an image that Eli made illustrating this:Untitled.png.fac32931ae52264366a1d908580d84b3.png
Let me know if that doesn't your question, and have fun!

Edited by Joshua Lamusga
  • Like 1

Untitled.png.28dedeebdce78c42589f24716981923f.png

Link to comment
Share on other sites

On 9/22/2020 at 11:33 AM, Joshua Lamusga said:

He's asking for the ability to make the brush strokes lag behind the cursor to a distance, which allows the brush strokes to be smoother. They're currently made by repeating the brush image X amount of times along a line based on the "density" of the brush stroke which is measured relative to the size of the brush. This is how paint.net draws lines as well (you can see the actual lines if the program lags while you draw, or if you draw really fast in circular motions). The main advantage to this method is that there are no "gaps" as would occur if you just draw at the current mouse position every frame. But I digress.
 

You're in luck because this is a listed feature I intend to support anyway. I might as well get around to it. All I need is to set the draw point as soon as the mouse is clicked. Instead of creating a line from the draw point to the mouse position every frame, I need to get the angle and magnitude of the vector and use some % of the magnitude towards the mouse point, then update the draw point to the new location. This should simulate what you get from most other programs, where the brush stroke lags behind the cursor position.

There is a better way to do it, which is to adjust the positions of the points so they're "smoother". This is a lot harder and requires drawing on a separate surface and updating the drawn image as the points adjust. The advantage is that the brush strokes are simply smoother without lagging the cursor. Both methods have their merits. I'll go with the first because I don't have to change the entire way that Brush Factory draws. I'll see what I can do when I get off work later.

Glad to see you are interested, pleas notify me when you have done, it would awesome start doing my drawings with that tool, for the moment im just gonna use the lines

Link to comment
Share on other sites

On 9/25/2020 at 12:17 PM, lynxster4 said:

Hi and welcome @SabreS.  🙂

 

While waiting for Joshua's reply, I recommend using Creative Text Pro, which allows you to put any texture on text and objects.

 

Read the post carefully for full instructional use. I find myself using this plugin a lot. It's for so much more than text.

Thank you, this should be useful!

Link to comment
Share on other sites

Hi all, I'm trying to achieve a Fiona Staples (Saga, Archie) type look with my cartoon colouring, and one thing that it seems would help is the right shape of brush. I'm hoping to get something along the lines of what the guy in this video uses (around 3m26s): 


Would Brush Factory be the best plugin to use for this? I've looked at the user guide and stuff but I can't quite tell... Thanks!

Link to comment
Share on other sites

Hi @bbX1138. It seems doable to me. Brush Factory might be the best plugin, if only for a lack of options when it comes to this. I made a simple brush based on the Youtube video, which I'm attaching to this message. With this simple triangle brush and a brush density of 20 (because 10 isn't enough for this shape), I get results comparable to the video, shown side-by-side below. You can modify the brush shape as needed; it's little more than a glorified triangle :)
Untitled.thumb.jpg.d351f303cd83e7736f58afbec6955ede.jpg

comicbrush.png

  • Upvote 1

Untitled.png.28dedeebdce78c42589f24716981923f.png

Link to comment
Share on other sites

9 hours ago, bbX1138 said:

Trying Brush Factory out, and it's a shame it only lets you see a single layer - not very useful when you want to 'ink' over sketch lines or use layers to do colouring... 

It's a shame alright. A hard limitation of the paint.net API; nothing I can do about it because the plugin cannot access layer information. Just to make sure you know about the workaround I made: you can copy an image to the clipboard before going into Brush Factory, then right-click the canvas and use clipboard image as background. It's the best I can do with what I'm given (but it sounds like you don't know about this, and maybe it'll work for you :))
image.png.a79bdfcdeb90aa895d736f7382d62ea1.png
(Note that "Use clipboard as background" only shows up if there's an image on the clipboard...it's sneaky like that.)

  • Like 1

Untitled.png.28dedeebdce78c42589f24716981923f.png

Link to comment
Share on other sites

  • 1 month later...

Just installed it and when i try and use it Paint.Net crashes!

 

This text file was created because paint.net crashed. Please e-mail this to crashlog4@getpaint.net so we can diagnose and fix the problem.

Application version: paint.net 4.2.14 (Final 4.214.7601.39231)
Time of crash: 19/11/2020 07:36:14
Application uptime: 00:00:07.3712536
Application state: Running 
Working set: 165,124 KiB
Handles and threads: 1073 handles, 38 threads, 164 gdi, 231 user
Install type: Classic
Application directory: C:\Installed\paint.net
Current directory: C:\Installed\paint.net
Install directory: C:\Installed\paint.net
OS Version: Windows 10 Pro 10.0.18363.0 x64 (0x30)
.NET version: CLR 4.0.30319.42000 x64
Processor: "Intel(R) Core(TM) m7-6Y75 CPU @ 1.20GHz" @ ~1512MHz (2C/4T, SSE, SSE2, SSE3, SSSE3, SSE4_1, SSE4_2, AVX, AVX2)
Physical memory: 16275 MB
Video card: Intel(R) HD Graphics 515 (v:8086, d:191E, r:7), Microsoft Basic Render Driver (v:1414, d:8C, r:0), Microsoft Basic Render Driver (v:1414, d:8C, r:0), Microsoft Basic Render Driver (v:1414, d:8C, r:0), Microsoft Basic Render Driver (v:1414, d:8C, r:0)
Hardware acceleration: True (default: True)
Pointers: Touchscreen (Touch, 10x), Virtual Multitouch Device (ExternalPen, 1x)
UI animations: True
UI DPI: 96 dpi (1.00x scale)
UI theme: VisualStyleClass=Aero, EffectiveTheme=Aero, DWM=yes, AeroColorScheme=Light, ThemeFileName=Aero.msstyles
Updates: True, 19/11/2020 (journal: ShouldCheckForUpdate, CheckedForUpdate)
Locale: pdnr.c: en-US, hklm: en-US, hkcu: en-US, cc: en-GB, cuic: en-US
Flags: 

Exception details:
System.ArgumentNullException: Value cannot be null.
Parameter name: path1
   at System.IO.Path.Combine(String path1, String path2)
   at BrushFactory.WinBrushFactory.OnShown(EventArgs e)
   at System.Windows.Forms.Control.InvokeMarshaledCallbackHelper(Object obj)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Windows.Forms.Control.InvokeMarshaledCallback(ThreadMethodEntry tme)
   at System.Windows.Forms.Control.InvokeMarshaledCallbacks()

Managed assemblies: 
    mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 @ C:\Windows\Microsoft.NET\Framework64\v4.0.30319\mscorlib.dll
    PaintDotNet, Version=4.214.7601.39231, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\PaintDotNet.exe
    PaintDotNet.Core, Version=4.214.7601.39231, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\PaintDotNet.Core.dll
    PaintDotNet.Base, Version=4.214.7601.39231, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\PaintDotNet.Base.dll
    WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 @ C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\WindowsBase\v4.0_4.0.0.0__31bf3856ad364e35\WindowsBase.dll
    System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 @ C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll
    System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 @ C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll
    System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @ C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Drawing\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Drawing.dll
    PresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 @ C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\PresentationFramework\v4.0_4.0.0.0__31bf3856ad364e35\PresentationFramework.dll
    PresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 @ C:\WINDOWS\Microsoft.Net\assembly\GAC_64\PresentationCore\v4.0_4.0.0.0__31bf3856ad364e35\PresentationCore.dll
    System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 @ C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Windows.Forms\v4.0_4.0.0.0__b77a5c561934e089\System.Windows.Forms.dll
    PaintDotNet.SystemLayer, Version=4.214.7601.39231, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\PaintDotNet.SystemLayer.dll
    PaintDotNet.Framework, Version=4.214.7601.39231, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\PaintDotNet.Framework.dll
    PaintDotNet.Resources, Version=4.214.7601.39231, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\PaintDotNet.Resources.dll
    PaintDotNet.Effects, Version=4.214.7601.39231, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\PaintDotNet.Effects.dll
    PaintDotNet.Data, Version=4.214.7601.39231, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\PaintDotNet.Data.dll
    PaintDotNet.SystemLayer.Native.x64, Version=4.214.7601.39231, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\PaintDotNet.SystemLayer.Native.x64.dll
    System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @ C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Configuration\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll
    System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 @ C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Xml\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.dll
    System.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 @ C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Xaml\v4.0_4.0.0.0__b77a5c561934e089\System.Xaml.dll
    System.Runtime.CompilerServices.Unsafe, Version=4.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @ C:\Installed\paint.net\System.Runtime.CompilerServices.Unsafe.dll
    RawFileType, Version=1.2.2.0, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\FileTypes\RawFileType.dll
    AvifFileType, Version=1.1.4.0, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Bundled\AvifFileType\AvifFileType.dll
    DdsFileTypePlus, Version=1.10.7.0, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Bundled\DDSFileTypePlus\DdsFileTypePlus.dll
    WebPFileType, Version=1.3.4.0, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Bundled\WebPFileType\WebPFileType.dll
    System.Collections.Immutable, Version=1.2.5.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @ C:\Installed\paint.net\System.Collections.Immutable.dll
    Accessibility, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @ C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\Accessibility\v4.0_4.0.0.0__b03f5f7f11d50a3a\Accessibility.dll
    System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 @ C:\Installed\paint.net\System.Buffers.dll
    System.Memory, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 @ C:\Installed\paint.net\System.Memory.dll
    Alpha2Gray, Version=4.5.6832.21862, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\Alpha2Gray.dll
    BandWPlus, Version=1.3.7359.317, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\BandWPlus.dll
    BBChart, Version=1.0.7358.33924, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\BBChart.dll
    BBOutlinedGradientText, Version=4.6.7358.38713, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\BBOutlinedGradientText.dll
    System.Windows.Forms.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 @ C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.Windows.Forms.DataVisualization\v4.0_4.0.0.0__31bf3856ad364e35\System.Windows.Forms.DataVisualization.dll
    "Borders N' Shapes", Version=4.0.4642.26476, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\Borders N' Shapes.dll
    BrushFactory, Version=2.0.0.29094, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\BrushFactory.dll
    Burninate, Version=4.6.7358.31797, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\Burninate.dll
    Calendar, Version=4.6.7358.32649, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\Calendar.dll
    ChromaKeyPlugin, Version=1.0.0.2, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\ChromaKeyPlugin.dll
    Color Match, Version=4.0.4642.26532, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\Color Match.dll
    ColorBalance, Version=4.7.7401.17173, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\ColorBalance.dll
    CombinedAdjustments, Version=1.1.7358.40688, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\CombinedAdjustments.dll
    ContentAwareFill, Version=1.3.2.0, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\ContentAwareFill.dll
    CreativeTextPro, Version=1.1.7358.34307, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\CreativeTextPro.dll
    Curves+, Version=4.0.6119.31044, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\Curves+.dll
    Dimensions, Version=1.3.6826.38472, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\Dimensions.dll
    Dream, Version=4.6.7358.35004, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\Dream.dll
    FillFromClipboard, Version=4.7.7358.36519, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\FillFromClipboard.dll
    FillFromFile, Version=4.7.7358.36581, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\FillFromFile.dll
    Film, Version=4.0.4642.26607, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\Film.dll
    Flip, Version=4.6.7358.36953, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\Flip.dll
    FloydSteinbergDithering, Version=4.6.7358.37110, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\FloydSteinbergDithering.dll
    GaussianBlurPlus, Version=4.2.5691.27401, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\GaussianBlurPlus.dll
    Gradient Bars, Version=4.0.5152.23084, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\Gradient Bars.dll
    Gradient Blocks, Version=4.0.4642.26658, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\Gradient Blocks.dll
    Gradient Grid, Version=4.0.6436.36068, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\Gradient Grid.dll
    Gradient Mapping, Version=4.0.6547.33963, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\Gradient Mapping.dll
    Gray2Alpha, Version=4.5.6826.36897, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\Gray2Alpha.dll
    Grid Warp, Version=4.0.6544.34496, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\Grid Warp.dll
    GridCheckerboard, Version=4.5.6828.36789, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\GridCheckerboard.dll
    HSVGradients, Version=4.5.6832.41864, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\HSVGradients.dll
    HueSatPlus, Version=4.6.7359.209, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\HueSatPlus.dll
    isolate, Version=1.0.3303.3202, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\isolate.dll
    Jitter, Version=4.0.4642.26986, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\Jitter.dll
    Landscape, Version=4.6.7358.37463, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\Landscape.dll
    LevelHorizon, Version=4.6.7358.37589, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\LevelHorizon.dll
    Liquify, Version=4.0.5873.25113, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\Liquify.dll
    MemeMaker, Version=4.5.6828.38061, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\MemeMaker.dll
    ObjectTools, Version=5.0.7502.21624, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\ObjectTools.dll
    OilPaintingPlus, Version=4.6.7358.38406, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\OilPaintingPlus.dll
    Feather, Version=2.3.4315.37038, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\OldFeather.dll
    Outline Object, Version=4.0.4642.26954, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\Outline Object.dll
    PasteAlpha, Version=4.6.7358.38804, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\PasteAlpha.dll
    Pastel, Version=4.6.7358.38877, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\Pastel.dll
    PhotoAdjustments, Version=4.6.7358.38979, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\PhotoAdjustments.dll
    Pixelate+, Version=4.0.4642.26940, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\Pixelate+.dll
    Polygon, Version=4.5.6828.38648, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\Polygon.dll
    Random Effect, Version=4.0.4642.26928, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\Random Effect.dll
    Random Shape Fill, Version=4.0.4642.26910, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\Random Shape Fill.dll
    RemoveDust, Version=4.5.6826.37862, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\RemoveDust.dll
    ScriptLab, Version=4.0.6107.18914, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\ScriptLab.dll
    SeamCarving, Version=4.6.7358.39596, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\SeamCarving.dll
    SelectionTools, Version=5.0.7502.22140, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\SelectionTools.dll
    Smudge, Version=4.0.5873.25097, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\Smudge.dll
    Splatter, Version=4.0.5873.25083, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\Splatter.dll
    Stitch, Version=4.0.4642.26808, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\Stitch.dll
    Temperature, Version=4.6.7358.39746, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\Temperature.dll
    Trail, Version=4.0.4642.26791, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\Trail.dll
    Transparency, Version=4.6.7358.39871, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\Transparency.dll
    TRsSmudger, Version=2.2.0.0, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\TRsSmudger.dll
    Twist, Version=4.0.5873.25056, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\Twist.dll
    VignettePlus, Version=4.6.7358.40027, Culture=neutral, PublicKeyToken=null @ C:\Installed\paint.net\Effects\VignettePlus.dll

Native modules: 
    C:\Installed\paint.net\PaintDotNet.exe, version=4.214.7601.39231
    C:\WINDOWS\SYSTEM32\ntdll.dll, version=10.0.18362.1171 (WinBuild.160101.0800)
    C:\WINDOWS\SYSTEM32\MSCOREE.DLL, version=10.0.18362.1 (WinBuild.160101.0800)
    C:\WINDOWS\System32\KERNEL32.dll, version=10.0.18362.1110 (WinBuild.160101.0800)
    C:\WINDOWS\System32\KERNELBASE.dll, version=10.0.18362.1171 (WinBuild.160101.0800)
    C:\WINDOWS\System32\ADVAPI32.dll, version=10.0.18362.1 (WinBuild.160101.0800)
    C:\WINDOWS\System32\msvcrt.dll, version=7.0.18362.1 (WinBuild.160101.0800)
    C:\WINDOWS\System32\sechost.dll, version=10.0.18362.1 (WinBuild.160101.0800)
    C:\WINDOWS\System32\RPCRT4.dll, version=10.0.18362.1 (WinBuild.160101.0800)
    C:\Windows\Microsoft.NET\Framework64\v4.0.30319\mscoreei.dll, version=4.8.4180.0 built by: NET48REL1LAST_B
    C:\WINDOWS\System32\SHLWAPI.dll, version=10.0.18362.1130 (WinBuild.160101.0800)
    C:\WINDOWS\System32\combase.dll, version=10.0.18362.1 (WinBuild.160101.0800)
    C:\WINDOWS\System32\ucrtbase.dll, version=10.0.18362.1110 (WinBuild.160101.0800)
    C:\WINDOWS\System32\bcryptPrimitives.dll, version=10.0.18362.836 (WinBuild.160101.0800)
    C:\WINDOWS\System32\GDI32.dll, version=10.0.18362.1 (WinBuild.160101.0800)
    C:\WINDOWS\System32\win32u.dll, version=10.0.18362.1198 (WinBuild.160101.0800)
    C:\WINDOWS\System32\gdi32full.dll, version=10.0.18362.1139 (WinBuild.160101.0800)
    C:\WINDOWS\System32\msvcp_win.dll, version=10.0.18362.1110 (WinBuild.160101.0800)
    C:\WINDOWS\System32\USER32.dll, version=10.0.18362.1130 (WinBuild.160101.0800)
    C:\WINDOWS\System32\IMM32.DLL, version=10.0.18362.387 (WinBuild.160101.0800)
    C:\WINDOWS\System32\kernel.appcore.dll, version=10.0.18362.1171 (WinBuild.160101.0800)
    C:\WINDOWS\SYSTEM32\VERSION.dll, version=10.0.18362.1 (WinBuild.160101.0800)
    C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll, version=4.8.4250.0 built by: NET48REL1LAST_C
    C:\WINDOWS\SYSTEM32\VCRUNTIME140_CLR0400.dll, version=14.10.25028.0 built by: VCTOOLSD15RTM
    C:\WINDOWS\SYSTEM32\ucrtbase_clr0400.dll, version=14.10.25028.0 built by: VCTOOLSD15RTM
    C:\WINDOWS\System32\psapi.dll, version=10.0.18362.1 (WinBuild.160101.0800)
    C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\mscorlib\52ce2de93895cec3507794c893974551\mscorlib.ni.dll, version=4.8.4250.0 built by: NET48REL1LAST_C
    C:\WINDOWS\System32\ole32.dll, version=10.0.18362.1 (WinBuild.160101.0800)
    C:\WINDOWS\system32\uxtheme.dll, version=10.0.18362.1130 (WinBuild.160101.0800)
    C:\WINDOWS\System32\CRYPTSP.dll, version=10.0.18362.1 (WinBuild.160101.0800)
    C:\WINDOWS\system32\rsaenh.dll, version=10.0.18362.1 (WinBuild.160101.0800)
    C:\WINDOWS\System32\bcrypt.dll, version=10.0.18362.1 (WinBuild.160101.0800)
    C:\WINDOWS\SYSTEM32\CRYPTBASE.dll, version=10.0.18362.1 (WinBuild.160101.0800)
    C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\System\11b8b7ed51c47042b76fe5b32dfd449f\System.ni.dll, version=4.8.4200.0 built by: NET48REL1LAST_C
    C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\System.Core\8f7375f6c9d69a1223d9f35b580fbd56\System.Core.ni.dll, version=4.8.4270.0 built by: NET48REL1LAST_C
    C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\WindowsBase\be71d4a0f4ab48f9c5ace2efe651ba8e\WindowsBase.ni.dll, version=4.8.4270.0 built by: NET48REL1LAST_C
    C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\System.Drawing\34b6d05f5af23ea33a3a82816c5038b5\System.Drawing.ni.dll, version=4.8.3752.0 built by: NET48REL1
    C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\PresentationCore\11e75a7d37325cd9e3a7f7b93161666e\PresentationCore.ni.dll, version=4.8.4270.0 built by: NET48REL1LAST_C
    C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\Presentatio5ae0f00f#\d3a2cb9682d2e9e918ccb2b386cbcc23\PresentationFramework.ni.dll, version=4.8.4270.0
    C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\PaintDotNet.Base\f9fbb24d53bfb5c40a3f332e68ef8e1e\PaintDotNet.Base.ni.dll, version=4.214.7601.39231
    C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\System.Windows.Forms\3c8baea8cce693cea1ae9a39e0e78b0f\System.Windows.Forms.ni.dll, version=4.8.4270.0 built by: NET48REL1LAST_C
    C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\PaintDotNet500b2e4f#\23a66a0f3b8ae2973d4e9a204643dedb\PaintDotNet.SystemLayer.ni.dll, version=4.214.7601.39231
    C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\PaintDotNet.Core\44521dd2fe4b5f71f83ef9ffaa515a5e\PaintDotNet.Core.ni.dll, version=4.214.7601.39231
    C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\PaintDotNet26779e70#\23ac81dec229d31ef799e442b862713b\PaintDotNet.Resources.ni.dll, version=4.214.7601.39231
    C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\PaintDotNet7afaaa15#\40f14382329557ce4dc1690b17a8a2dc\PaintDotNet.Framework.ni.dll, version=4.214.7601.39231
    C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\PaintDotNet.Data\ab85c456a93220153299f724531b07ab\PaintDotNet.Data.ni.dll, version=4.214.7601.39231
    C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\PaintDotNet.Effects\3f259b89e7efc0e88f3615a8ec269bbe\PaintDotNet.Effects.ni.dll, version=4.214.7601.39231
    C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\PaintDotNet\fb0cf4c44bc4c53adbd08d303dbdf78b\PaintDotNet.ni.exe, version=4.214.7601.39231
    C:\WINDOWS\SYSTEM32\dwrite.dll, version=10.0.18362.1 (WinBuild.160101.0800)
    C:\Windows\Microsoft.NET\Framework64\v4.0.30319\WPF\wpfgfx_v0400.dll, version=4.8.4270.0 built by: NET48REL1LAST_C
    C:\WINDOWS\System32\OLEAUT32.dll, version=10.0.18362.1110 (WinBuild.160101.0800)
    C:\WINDOWS\SYSTEM32\MSVCP140_CLR0400.dll, version=14.10.25028.0 built by: VCTOOLSD15RTM
    C:\Windows\Microsoft.NET\Framework64\v4.0.30319\WPF\PresentationNative_v0400.dll, version=4.8.4270.0 built by: NET48REL1LAST_C
    C:\WINDOWS\System32\shell32.dll, version=10.0.18362.1130 (WinBuild.160101.0800)
    C:\WINDOWS\System32\cfgmgr32.dll, version=10.0.18362.387 (WinBuild.160101.0800)
    C:\WINDOWS\System32\shcore.dll, version=10.0.18362.1130 (WinBuild.160101.0800)
    C:\WINDOWS\System32\windows.storage.dll, version=10.0.18362.1130 (WinBuild.160101.0800)
    C:\WINDOWS\System32\profapi.dll, version=10.0.18362.693 (WinBuild.160101.0800)
    C:\WINDOWS\System32\powrprof.dll, version=10.0.18362.1130 (WinBuild.160101.0800)
    C:\WINDOWS\System32\UMPDC.dll, version=
    C:\Installed\paint.net\Native\X64\vcruntime140.dll, version=14.27.29016.0 built by: vcwrkspc
    C:\Installed\paint.net\Native\X64\vcruntime140_1.dll, version=14.27.29016.0 built by: vcwrkspc
    C:\Installed\paint.net\Native\X64\msvcp140.dll, version=14.27.29016.0 built by: vcwrkspc
    C:\Installed\paint.net\Native\X64\msvcp140_1.dll, version=14.27.29016.0 built by: vcwrkspc
    C:\Installed\paint.net\Native\X64\msvcp140_2.dll, version=14.27.29016.0 built by: vcwrkspc
    C:\Installed\paint.net\Native\X64\msvcp140_codecvt_ids.dll, version=14.27.29016.0 built by: vcwrkspc
    C:\Installed\paint.net\Native\X64\vcomp140.dll, version=14.27.29016.0 built by: vcwrkspc
    C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\PaintDotNetc8826574#\21f7b5ef2fdf38e167e4c8f634752834\PaintDotNet.SystemLayer.Native.x64.ni.dll, version=4.214.7601.39231
    C:\Installed\paint.net\PaintDotNet.SystemLayer.Native.x64.dll, version=4.214.7601.39231
    C:\WINDOWS\SYSTEM32\PROPSYS.dll, version=7.0.18362.1130 (WinBuild.160101.0800)
    C:\WINDOWS\WinSxS\amd64_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.18362.1198_none_cf6cfe3d3eed52fd\gdiplus.dll, version=10.0.18362.1198 (WinBuild.160101.0800)
    C:\WINDOWS\SYSTEM32\WindowsCodecs.dll, version=10.0.18362.959 (WinBuild.160101.0800)
    C:\WINDOWS\System32\clbcatq.dll, version=2001.12.10941.16384 (WinBuild.160101.0800)
    C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\System.Configuration\e7a78a688137525434ca0e331fa4ae01\System.Configuration.ni.dll, version=4.8.4190.0 built by: NET48REL1LAST_B
    C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\System.Xml\da63232ab47cbdbe78f2126762a3b4f4\System.Xml.ni.dll, version=4.8.3752.0 built by: NET48REL1
    C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\System.Xaml\3167423eb90219ebca91aa6ed8e89f4d\System.Xaml.ni.dll, version=4.8.4270.0 built by: NET48REL1LAST_C
    C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\System.Runtea61dfd5#\313b14292b4006714eefaf0d0824e2d8\System.Runtime.CompilerServices.Unsafe.ni.dll, version=4.700.20.12001
    C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clrjit.dll, version=4.8.4250.0 built by: NET48REL1LAST_C
    C:\WINDOWS\System32\MSCTF.dll, version=10.0.18362.1130 (WinBuild.160101.0800)
    C:\WINDOWS\SYSTEM32\dxgi.dll, version=10.0.18362.1049 (WinBuild.160101.0800)
    C:\WINDOWS\SYSTEM32\dxcore.dll, version=10.0.18362.1 (WinBuild.160101.0800)
    C:\Windows\Microsoft.NET\Framework64\v4.0.30319\diasymreader.dll, version=14.8.3752.0 built by: NET48REL1
    C:\WINDOWS\System32\UIAnimation.dll, version=10.0.18362.1 (WinBuild.160101.0800)
    C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.18362.1198_none_9e820b57e45ad92f\comctl32.dll, version=6.10 (WinBuild.160101.0800)
    C:\WINDOWS\SYSTEM32\mfplat.dll, version=10.0.18362.1130 (WinBuild.160101.0800)
    C:\WINDOWS\SYSTEM32\RTWorkQ.DLL, version=10.0.18362.1 (WinBuild.160101.0800)
    C:\WINDOWS\SYSTEM32\CompPkgSup.DLL, version=10.0.18362.1 (WinBuild.160101.0800)
    C:\Windows\System32\Windows.StateRepositoryPS.dll, version=10.0.18362.1171 (WinBuild.160101.0800)
    C:\Windows\System32\WinTypes.dll, version=10.0.18362.1 (WinBuild.160101.0800)
    C:\WINDOWS\SYSTEM32\d2d1.dll, version=10.0.18362.1 (WinBuild.160101.0800)
    C:\WINDOWS\SYSTEM32\wtsapi32.dll, version=10.0.18362.1 (WinBuild.160101.0800)
    C:\WINDOWS\SYSTEM32\WINSTA.dll, version=10.0.18362.836 (WinBuild.160101.0800)
    C:\WINDOWS\SYSTEM32\d3d11.dll, version=10.0.18362.1171 (WinBuild.160101.0800)
    C:\WINDOWS\SYSTEM32\D3D10Warp.dll, version=10.0.18362.1049 (WinBuild.160101.0800)
    C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\System.Coll4a4f96a7#\5767bff6c06020b11c13126746d64dc5\System.Collections.Immutable.ni.dll, version=4.700.20.21406
    C:\WINDOWS\SYSTEM32\dwmapi.dll, version=10.0.18362.1130 (WinBuild.160101.0800)
    C:\WINDOWS\system32\dataexchange.dll, version=10.0.18362.836 (WinBuild.160101.0800)
    C:\WINDOWS\system32\dcomp.dll, version=10.0.18362.1110 (WinBuild.160101.0800)
    C:\WINDOWS\system32\twinapi.appcore.dll, version=10.0.18362.1 (WinBuild.160101.0800)
    C:\WINDOWS\system32\RMCLIENT.dll, version=10.0.18362.267 (WinBuild.160101.0800)
    C:\WINDOWS\System32\TextInputFramework.dll, version=10.0.18362.1171 (WinBuild.160101.0800)
    C:\WINDOWS\System32\CoreUIComponents.dll, version=10.0.18362.1110
    C:\WINDOWS\System32\CoreMessaging.dll, version=10.0.18362.1049
    C:\WINDOWS\SYSTEM32\ntmarta.dll, version=10.0.18362.1 (WinBuild.160101.0800)
    C:\WINDOWS\System32\iertutil.dll, version=11.00.18362.1130 (WinBuild.160101.0800)
    C:\WINDOWS\system32\Oleacc.dll, version=7.2.18362.1 (WinBuild.160101.0800)
    C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\Accessibility\69d0b8b88fb2950c60faecce24c74de2\Accessibility.ni.dll, version=4.8.3752.0 built by: NET48REL1
    C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\System.Buffers\dfd707b88be85ab41250d8c490d4bb39\System.Buffers.ni.dll, version=4.6.28619.01
    C:\WINDOWS\SYSTEM32\winmm.dll, version=10.0.18362.1 (WinBuild.160101.0800)
    C:\WINDOWS\SYSTEM32\winmmbase.dll, version=10.0.18362.1 (WinBuild.160101.0800)
    C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\System.Memory\c3bf1d2ca73c54eb2b0c561ea8b33333\System.Memory.ni.dll, version=4.6.28619.01
    C:\WINDOWS\System32\DriverStore\FileRepository\igdlh64.inf_amd64_6742a32d2d482a17\igd10iumd64.dll, version=26.20.100.8142
    C:\WINDOWS\SYSTEM32\ncrypt.dll, version=10.0.18362.1 (WinBuild.160101.0800)
    C:\WINDOWS\SYSTEM32\NTASN1.dll, version=10.0.18362.1 (WinBuild.160101.0800)
    C:\WINDOWS\System32\DriverStore\FileRepository\igdlh64.inf_amd64_6742a32d2d482a17\igdgmm64.dll, version=26.20.100.8142
    C:\WINDOWS\System32\DriverStore\FileRepository\igdlh64.inf_amd64_6742a32d2d482a17\igc64.dll, version=26.20.100.8142
    C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\System.Wind0de890be#\e3e17c7213ae2a72fcda24b5a4fb49b5\System.Windows.Forms.DataVisualization.ni.dll, version=4.8.4200.0
    C:\WINDOWS\system32\explorerframe.dll, version=10.0.18362.1130 (WinBuild.160101.0800)
    C:\WINDOWS\SYSTEM32\winhttp.dll, version=10.0.18362.1 (WinBuild.160101.0800)
    C:\WINDOWS\SYSTEM32\IPHLPAPI.DLL, version=10.0.18362.1 (WinBuild.160101.0800)
    C:\WINDOWS\System32\NSI.dll, version=10.0.18362.1171 (WinBuild.160101.0800)
    C:\WINDOWS\SYSTEM32\dhcpcsvc6.DLL, version=10.0.18362.1 (WinBuild.160101.0800)
    C:\WINDOWS\SYSTEM32\dhcpcsvc.DLL, version=10.0.18362.1 (WinBuild.160101.0800)
    C:\WINDOWS\System32\WS2_32.dll, version=10.0.18362.1 (WinBuild.160101.0800)
    C:\WINDOWS\SYSTEM32\rasapi32.dll, version=10.0.18362.1130 (WinBuild.160101.0800)
    C:\WINDOWS\SYSTEM32\rasman.dll, version=10.0.18362.1 (WinBuild.160101.0800)
    C:\WINDOWS\SYSTEM32\rtutils.dll, version=10.0.18362.1 (WinBuild.160101.0800)
    C:\WINDOWS\system32\mswsock.dll, version=10.0.18362.1 (WinBuild.160101.0800)
    C:\WINDOWS\SYSTEM32\DNSAPI.dll, version=10.0.18362.1 (WinBuild.160101.0800)
    C:\WINDOWS\SYSTEM32\WINNSI.DLL, version=10.0.18362.449 (WinBuild.160101.0800)
    C:\Windows\System32\rasadhlp.dll, version=10.0.18362.1 (WinBuild.160101.0800)
    C:\WINDOWS\System32\fwpuclnt.dll, version=10.0.18362.1 (WinBuild.160101.0800)
    C:\WINDOWS\SYSTEM32\secur32.dll, version=10.0.18362.1 (WinBuild.160101.0800)
    C:\WINDOWS\SYSTEM32\SSPICLI.DLL, version=10.0.18362.1049 (WinBuild.160101.0800)
    C:\WINDOWS\system32\schannel.DLL, version=10.0.18362.1 (WinBuild.160101.0800)
    C:\WINDOWS\System32\CRYPT32.dll, version=10.0.18362.1130 (WinBuild.160101.0800)
    C:\WINDOWS\System32\MSASN1.dll, version=10.0.18362.1 (WinBuild.160101.0800)
    C:\WINDOWS\SYSTEM32\mskeyprotect.dll, version=10.0.18362.1130 (WinBuild.160101.0800)
    C:\WINDOWS\system32\ncryptsslp.dll, version=10.0.18362.1 (WinBuild.160101.0800)
    C:\WINDOWS\System32\SetupApi.dll, version=10.0.18362.1130 (WinBuild.160101.0800)
    C:\WINDOWS\SYSTEM32\DEVOBJ.dll, version=10.0.18362.387 (WinBuild.160101.0800)
    C:\WINDOWS\System32\WINTRUST.dll, version=10.0.18362.1198 (WinBuild.160101.0800)
------------------------------------------------------------------------------
 

Link to comment
Share on other sites

@stevehb Paint.net gave my plugin a bad value. There's better error handling now, and it tries to guess the location of the settings folder now in case paint.net does that again (which is documents\paint.net User Files). In any case it won't crash. Thanks for submitting the error.

 

Please try it and let me know if it works now. You can download the updated version from the same link.

 

 

(p.s. to others: As for the delay on having delayed brush strokes for smoothing, I've been busy lately. Sorry about that.)

Edited by Joshua Lamusga
Fixed a crash.
  • Like 1

Untitled.png.28dedeebdce78c42589f24716981923f.png

Link to comment
Share on other sites

12 hours ago, kimimiles said:

Thanks for sharing this info. I also looking for recommendation about alternatives to format factory...

You can usually find online converters for most things. I recommend Phatch for image-centric batch processing. I think there's some rudimentary batching plugin somewhere around here, but I'm not sure about it and in any case, phatch would beat it by a good amount.

 

You said format factory, but I'm assuming you meant WinFF (Windows file factory), which is actually really good software. If that's not what you meant, I recommend trying that, then.

Untitled.png.28dedeebdce78c42589f24716981923f.png

Link to comment
Share on other sites

  • 4 weeks later...
9 hours ago, Aredon said:

I've downloaded this Plugin now, ut can't set oder add new Brushes because i get alwaysthe same error message:

 

What happens here?

 

Paint.net sometimes returns no location when we ask where the documents folder is, which is a new problem. I don't get this problem personally, so it's difficult to mitigate. Brush Factory tries to directly guess the common location, e.g. C:\Users\you\Documents\paint.net User Files. If the folder doesn't exist there, it gives up with that error message. The program is usable except it won't save settings, but I understand how that's irritating.

 

It's possible that you moved paint.net, renamed it, or installed it somewhere else. Or changed the location of the paint.net user files folder. I really shouldn't have to make a guessing game at where that folder is, but currently paint.net doesn't want to cooperate, I guess.

 

@Rick Brewster userFilesService.UserFilesPath returns null these days. Any idea why? I get the service in a window OnShown event.

IUserFilesService userFilesService = (IUserFilesService)Services.GetService(typeof(IUserFilesService));	              
(IUserFilesService)Services.GetService(typeof(IUserFilesService));

If I get the answer I could avoid guessing later. I didn't write this particular code so I have even less of an idea why it's broken than normal. Thanks for looking.

Untitled.png.28dedeebdce78c42589f24716981923f.png

Link to comment
Share on other sites

If PDN is returning `null` for `UserFilesPath`, it's because Windows itself, via the SHGetFolderPathW API, isn't giving up the location. Possibly because it doesn't exist and can't be created (PDN does pass `CSIDL_FLAG_CREATE` into `SHGetFolderPathW`). Maybe because of some file system permissions issue. Or maybe over-zealous antivirus is blocking creation. It's not clear to me, and depends on context (like maybe the Documents folder itself doesn't exist itself? or has been moved to a more strict location?). You must be able to gracefully handle a `null` result here, unfortunately. You will probably see the same problem when trying to work with custom palettes via the Colors window.

 

The "best" way to "handle" this error, in my opinion, is to just show an error dialog. You can do this via the `IExceptionDialogService` service and its `ShowErrorDialog` methods. That's what the app does when needed (e.g. when trying to work with custom palettes in the Colors form). You can pass `null` for the `owner` parameter and PDN will do its best to figure out what to hang the dialog off of (e.g. the main window or the effect form). I highly recommend doing this on the UI thread, which will be the case if you're doing this in the `Shown` event handler.

The Paint.NET Blog: https://blog.getpaint.net/

Donations are always appreciated! https://www.getpaint.net/donate.html

forumSig_bmwE60.jpg

Link to comment
Share on other sites

I can also add a method to the IUserFilesService, such as GetUserFilesPath(), that will pass along the exception (this just provides more information for troubleshooting purposes). It will throw on error instead of returning null, in other words. The existing TryGetUserFilesPath() method will return null as well -- the exception is discarded and transformed into a null return value.

The Paint.NET Blog: https://blog.getpaint.net/

Donations are always appreciated! https://www.getpaint.net/donate.html

forumSig_bmwE60.jpg

Link to comment
Share on other sites

Quote

whoa. this post is still active after 5 years or so.


Not an uncommon sight on this forum, and I intend to at least maintain it until it becomes obsolete or people stop finding it useful.
 

Quote

i got a little problem: click this link and you'll see the problem i have.

I don't think my plugin is responsible for the disappearance of others in the same category; not sure how that would happen (or how it would be fixed if so).

 

Quote

The "best" way to "handle" this error, in my opinion, is to just show an error dialog.

Agreed, so I currently do. Unfortunate it's just an ambient environmental problem that causes null to be returned. Adding exception details would be useful for logging to learn what the problem might be. Luckily I go one step further to checking the documents folder. Thanks for responding.

Until there's more info on what the common issues are, I can't do much about it, so for the people who consistently have errors, a few questions:
- Are you running Windows 10 or a different version?
- Can other plugins access the "paint.net User Files" folder, if you know? You'll see data stored there if so.


Try this if you're having the settings problem ~~~

Try creating a folder exactly called paint.net User Files in your Documents folder at  "C:\Users\your_name\Documents\" (where your_name is your current username...the Documents shortcut button in File Explorer on the left-hand side should take you to the right place). Brush Factory currently looks for this folder and tries to load things from it; if there's just a mismatch with finding the path of the paint.net user files folder, this should mitigate the problem. An ugly workaround, but better than nothing (with my luck it will persist anyway. Knocking on wood)

(p.s. Happy New Year's, everyone -- or at least we're done with 2020)

Edited by Joshua Lamusga
  • Like 2

Untitled.png.28dedeebdce78c42589f24716981923f.png

Link to comment
Share on other sites

Brush Factory shows the same two error windows.

 

Am able to use Add Brushes button to manually load a brush from paint.net User Files in Documents folder.

(Or any other folder.)

 

I have removed and recreated the "paint.net User Files" folder.

 

Running Windows 10.

Smudge can access the "paint.net User Files" folder.

 

Quote

You'll see data stored there if so.

 

Not sure what this means.

 

 

Link to comment
Share on other sites

I was curious about these errors, so I opened Brush Factory this morning, and I too see the error messages. Running Windows 10 20H2.

 

I'm using IUserFilesService in a few of my plugins, and it's working fine in those.

 

I'll take a look at what's going on in the Brush Factory source code later tonight when I get back from work.

  • Upvote 1
Link to comment
Share on other sites

  • NinthDesertDude changed the title to Brush Factory v2.0.2 (May 3rd, 2021)

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...