Jump to content

Tiled Form - 3/17/2021


Reptillian
 Share

Recommended Posts

Introducing the second g'mic-pdn plugin to exist - Tiled Form.

 

What this plugin does is to create tiled shapes into your canvas, and the colors are calculated by weighted average, and z-convolution as a post-process step.

 

More details on how the plugin works below (Only for programmers, so click spoiler if you are one interested into this.):
 

Spoiler

 

1. Create shape. It has to be fitted into the tile in the end, and the initial size is dependent on sub-sampling level. It's really hard to explain how it works.

2. Resize the target image canvas to nearest divisible integer greater than the dimension divided by the end tile width/height.

3. After the initial shape processing shape, resize the shape and make sure it repeat accordingly to the boundary specification.

4. Create a new image which multiples the target image and the shape canvas. And then, another one which use the inverted shape canvas instead.

5. Create a volumetric image which dimension is the number of tiles per dimension to complete dimension. That means tiles_w,tiles_h, depth of 2, and n where n is the number of channel in initial image.

6. Using multi-threaded, find the average of the multiplied image. At z=0, find the average of multiplied shape image, and for z=1 find the average of inverted-shape multiplied image.

7. Using a 1,1,3 image where the 0,0,1 is 1 plus the twice the absolute of the same negative value in the surround image, apply this image to convolve the volumetric image. Only applicable if z-convolution is enabled.

8. Using the shape image (not the created images which is found by multiplying the shape image by target images) and the volumetric image, create shape based on the information generated.

 

 

Note that there's a bug I can't resolve, however this plugin works well for the most part. The bug that I can't resolve has to do with starting with Australia and having dynamic option.

 

Output of Effect:

 

hVDfGxW.png

 

Installation steps:

 

Note: Check if you have a folder named 'GmicSharpNative'. If not, then download GMICSharpNative, and extract 'GmicSharpNative' into plugin installation folder named 'Effects'. Then, you can find this under Artistic after you loaded PDN.

 

Ensure that the note is taken care of. Then, download the zip, and extract it directly into the Effects folder. -> TiledFormGmicPDN.zip

 

G'MIC-PDN Plugin Source code:

 

To use these two source code file, you need to use this repository provided by @null54, rename everything within the source to ensure you have your own project folder, and then insert it where they originally are. You also need to build GmicSharpPDN library.

 

Effect.cs

Spoiler




#define USE_CLIPBOARD

using GmicSharpPdn;
using PaintDotNet;
using PaintDotNet.AppModel;
using PaintDotNet.Effects;
using PaintDotNet.IndirectUI;
using PaintDotNet.PropertySystem;
using System.Drawing;
using System.Globalization;
using System.Reflection;
using System.Collections.Generic;

#if USE_CLIPBOARD
using PaintDotNet.Clipboard;
#endif

namespace Tiled_Form
{
    [PluginSupportInfo(typeof(PluginSupportInfo))]
    public sealed class TiledFormGmicPdnPlugin : PropertyBasedEffect
    {
        public TiledFormGmicPdnPlugin()
            : base("Tiled Form", StaticIcon, SubmenuNames.Stylize, new EffectOptions { Flags = EffectFlags.Configurable })
        {
        }

        public static Image StaticIcon => new Bitmap(typeof(Tiled_Form.TiledFormGmicPdnPlugin), "TiledFormIcon.png");

        private enum PropertyNames
        {
            Cs_mode,
            Pretile_mode,
            Use_clipboard_as_tile,
            Shape_w,
            Shape_h,
            Shape_ratio,
            Shape_ang,
            Shape_axis,
            Sub,
            Zconv_Factor,
            Zconv_Boundary,
            Interp,
            Tile_b,
            Preprocess,
            Fit_tile,
            Points,
            Thickness
        }

        public enum Cs_modeOptions
        {
            Cs_modeOption1,
            Cs_modeOption2,
            Cs_modeOption3,
            Cs_modeOption4,
            Cs_modeOption5,
            Cs_modeOption6,
            Cs_modeOption7,
            Cs_modeOption8,
            Cs_modeOption9
        }

        public enum Pretile_modeOptions
        {
            Pretile_modeOption1,
            Pretile_modeOption2,
            Pretile_modeOption3,
            Pretile_modeOption4,
            Pretile_modeOption5,
            Pretile_modeOption6,
            Pretile_modeOption7,
            Pretile_modeOption8,
            Pretile_modeOption9,
            Pretile_modeOption10,
            Pretile_modeOption11,
            Pretile_modeOption12,
            Pretile_modeOption13,
            Pretile_modeOption14,
            Pretile_modeOption15,
            Pretile_modeOption16,
            Pretile_modeOption17,
            Pretile_modeOption18,
            Pretile_modeOption19,
            Pretile_modeOption20,
            Pretile_modeOption21,
            Pretile_modeOption22
        }

        public enum Shape_axisOptions
        {
            Shape_axisOption1,
            Shape_axisOption2,
            Shape_axisOption3
        }

        public enum Zconv_BoundaryOptions
        {
            Zconv_BoundaryOption1,
            Zconv_BoundaryOption2,
        }

        public enum InterpOptions
        {
            InterpOption1,
            InterpOption2,
            InterpOption3,
            InterpOption4,
            InterpOption5
        }

        public enum Tile_bOptions
        {
            Tile_bOption1,
            Tile_bOption2,
            Tile_bOption3,
            Tile_bOption4
        }

        public enum PreprocessOptions
        {
            PreprocessOption1,
            PreprocessOption2,
            PreprocessOption3
        }

        protected override PropertyCollection OnCreatePropertyCollection()
        {
            Property[] props = new Property[]
            {
                StaticListChoiceProperty.CreateForEnum<Cs_modeOptions>(PropertyNames.Cs_mode,(Cs_modeOptions)7,false),
                StaticListChoiceProperty.CreateForEnum<Pretile_modeOptions>(PropertyNames.Pretile_mode,(Pretile_modeOptions)5,false),
                new BooleanProperty(PropertyNames.Use_clipboard_as_tile, false),
                new Int32Property(PropertyNames.Shape_w, 30, 0, 512),
                new Int32Property(PropertyNames.Shape_h, 30, 0, 512),
                new DoubleProperty(PropertyNames.Shape_ratio, 100, .1, 100),
                new DoubleProperty(PropertyNames.Shape_ang, 0, -180, 180),
                StaticListChoiceProperty.CreateForEnum<Shape_axisOptions>(PropertyNames.Shape_axis,0,false),
                new DoubleProperty(PropertyNames.Sub, 1, .5, 2),
                new DoubleProperty(PropertyNames.Zconv_Factor, 75, 0, 200),
                StaticListChoiceProperty.CreateForEnum<Zconv_BoundaryOptions>(PropertyNames.Zconv_Boundary,0,false),
                StaticListChoiceProperty.CreateForEnum<InterpOptions>(PropertyNames.Interp,(InterpOptions)4,false),
                StaticListChoiceProperty.CreateForEnum<Tile_bOptions>(PropertyNames.Tile_b,0,false),
                StaticListChoiceProperty.CreateForEnum<PreprocessOptions>(PropertyNames.Preprocess,0,false),
                new BooleanProperty(PropertyNames.Fit_tile, true),
                new Int32Property(PropertyNames.Points, 5, 1, 100),
                new DoubleProperty(PropertyNames.Thickness, 38, .1, 100)
            };

            List<PropertyCollectionRule> propRules = new List<PropertyCollectionRule>();

            propRules.Add(new ReadOnlyBoundToValueRule<object, StaticListChoiceProperty>(PropertyNames.Thickness, PropertyNames.Pretile_mode, Pretile_modeOptions.Pretile_modeOption22, true));
            propRules.Add(new ReadOnlyBoundToBooleanRule(PropertyNames.Thickness, PropertyNames.Use_clipboard_as_tile, false));
            propRules.Add(new ReadOnlyBoundToBooleanRule(PropertyNames.Pretile_mode, PropertyNames.Use_clipboard_as_tile, false));
            propRules.Add(new ReadOnlyBoundToValueRule<object, StaticListChoiceProperty>(PropertyNames.Points, PropertyNames.Pretile_mode, new object[] { Pretile_modeOptions.Pretile_modeOption18, Pretile_modeOptions.Pretile_modeOption21, Pretile_modeOptions.Pretile_modeOption22 }, true));
            propRules.Add(new ReadOnlyBoundToBooleanRule(PropertyNames.Points, PropertyNames.Use_clipboard_as_tile, false));
            propRules.Add(new ReadOnlyBoundToValueRule<double, DoubleProperty>(PropertyNames.Zconv_Boundary, PropertyNames.Zconv_Factor, new[] { 0d }, false));

            return new PropertyCollection(props, propRules);
        }

        protected override ControlInfo OnCreateConfigUI(PropertyCollection props)
        {
            ControlInfo configUI = CreateDefaultConfigUI(props);
            configUI.SetPropertyControlValue(PropertyNames.Cs_mode, ControlInfoPropertyNames.DisplayName, "Color Space");
            PropertyControlInfo Cs_modeControl = configUI.FindControlForPropertyName(PropertyNames.Cs_mode);
            Cs_modeControl.SetValueDisplayName(Cs_modeOptions.Cs_modeOption1, "RGB");
            Cs_modeControl.SetValueDisplayName(Cs_modeOptions.Cs_modeOption2, "RYB");
            Cs_modeControl.SetValueDisplayName(Cs_modeOptions.Cs_modeOption3, "CMYK");
            Cs_modeControl.SetValueDisplayName(Cs_modeOptions.Cs_modeOption4, "HCY");
            Cs_modeControl.SetValueDisplayName(Cs_modeOptions.Cs_modeOption5, "HSI");
            Cs_modeControl.SetValueDisplayName(Cs_modeOptions.Cs_modeOption6, "HSL");
            Cs_modeControl.SetValueDisplayName(Cs_modeOptions.Cs_modeOption7, "HSV");
            Cs_modeControl.SetValueDisplayName(Cs_modeOptions.Cs_modeOption8, "LAB");
            Cs_modeControl.SetValueDisplayName(Cs_modeOptions.Cs_modeOption9, "LCH");
            configUI.SetPropertyControlValue(PropertyNames.Pretile_mode, ControlInfoPropertyNames.DisplayName, "Tiled Form");
            PropertyControlInfo Pretile_modeControl = configUI.FindControlForPropertyName(PropertyNames.Pretile_mode);
            Pretile_modeControl.SetValueDisplayName(Pretile_modeOptions.Pretile_modeOption1, "Australia");
            Pretile_modeControl.SetValueDisplayName(Pretile_modeOptions.Pretile_modeOption2, "Barbed Wire");
            Pretile_modeControl.SetValueDisplayName(Pretile_modeOptions.Pretile_modeOption3, "Circle");
            Pretile_modeControl.SetValueDisplayName(Pretile_modeOptions.Pretile_modeOption4, "Crosshair");
            Pretile_modeControl.SetValueDisplayName(Pretile_modeOptions.Pretile_modeOption5, "Cupid");
            Pretile_modeControl.SetValueDisplayName(Pretile_modeOptions.Pretile_modeOption6, "Diamond");
            Pretile_modeControl.SetValueDisplayName(Pretile_modeOptions.Pretile_modeOption7, "Dragonfly");
            Pretile_modeControl.SetValueDisplayName(Pretile_modeOptions.Pretile_modeOption8, "Flip");
            Pretile_modeControl.SetValueDisplayName(Pretile_modeOptions.Pretile_modeOption9, "Gumleaf");
            Pretile_modeControl.SetValueDisplayName(Pretile_modeOptions.Pretile_modeOption10, "Heart");
            Pretile_modeControl.SetValueDisplayName(Pretile_modeOptions.Pretile_modeOption11, "Information");
            Pretile_modeControl.SetValueDisplayName(Pretile_modeOptions.Pretile_modeOption12, "Kookaburra");
            Pretile_modeControl.SetValueDisplayName(Pretile_modeOptions.Pretile_modeOption13, "Mail");
            Pretile_modeControl.SetValueDisplayName(Pretile_modeOptions.Pretile_modeOption14, "Mapleleaf");
            Pretile_modeControl.SetValueDisplayName(Pretile_modeOptions.Pretile_modeOption15, "Paint Splat");
            Pretile_modeControl.SetValueDisplayName(Pretile_modeOptions.Pretile_modeOption16, "Paw");
            Pretile_modeControl.SetValueDisplayName(Pretile_modeOptions.Pretile_modeOption17, "Phone");
            Pretile_modeControl.SetValueDisplayName(Pretile_modeOptions.Pretile_modeOption18, "Polygon (Dynamic)");
            Pretile_modeControl.SetValueDisplayName(Pretile_modeOptions.Pretile_modeOption19, "Rooster");
            Pretile_modeControl.SetValueDisplayName(Pretile_modeOptions.Pretile_modeOption20, "Shopping Cart");
            Pretile_modeControl.SetValueDisplayName(Pretile_modeOptions.Pretile_modeOption21, "Snowflake (Dynamic)");
            Pretile_modeControl.SetValueDisplayName(Pretile_modeOptions.Pretile_modeOption22, "Star (Dynamic)");
            configUI.SetPropertyControlValue(PropertyNames.Use_clipboard_as_tile, ControlInfoPropertyNames.DisplayName, string.Empty);
            configUI.SetPropertyControlValue(PropertyNames.Use_clipboard_as_tile, ControlInfoPropertyNames.Description, "Use Clipboard as Tile?");
            configUI.SetPropertyControlValue(PropertyNames.Shape_w, ControlInfoPropertyNames.DisplayName, "Shape Width");
            configUI.SetPropertyControlValue(PropertyNames.Shape_h, ControlInfoPropertyNames.DisplayName, "Shape Height");
            configUI.SetPropertyControlValue(PropertyNames.Shape_ratio, ControlInfoPropertyNames.DisplayName, "Shape Ratio (%)");
            configUI.SetPropertyControlValue(PropertyNames.Shape_ratio, ControlInfoPropertyNames.SliderLargeChange, 0.25);
            configUI.SetPropertyControlValue(PropertyNames.Shape_ratio, ControlInfoPropertyNames.SliderSmallChange, 0.05);
            configUI.SetPropertyControlValue(PropertyNames.Shape_ratio, ControlInfoPropertyNames.UpDownIncrement, 0.01);
            configUI.SetPropertyControlValue(PropertyNames.Shape_ratio, ControlInfoPropertyNames.DecimalPlaces, 3);
            configUI.SetPropertyControlValue(PropertyNames.Shape_ang, ControlInfoPropertyNames.DisplayName, "Shape Rotation");
            configUI.SetPropertyControlType(PropertyNames.Shape_ang, PropertyControlType.AngleChooser);
            configUI.SetPropertyControlValue(PropertyNames.Shape_ang, ControlInfoPropertyNames.DecimalPlaces, 3);
            configUI.SetPropertyControlValue(PropertyNames.Shape_axis, ControlInfoPropertyNames.DisplayName, "Shape Mirror Axis");
            PropertyControlInfo Shape_axisControl = configUI.FindControlForPropertyName(PropertyNames.Shape_axis);
            Shape_axisControl.SetValueDisplayName(Shape_axisOptions.Shape_axisOption1, "None");
            Shape_axisControl.SetValueDisplayName(Shape_axisOptions.Shape_axisOption2, "X");
            Shape_axisControl.SetValueDisplayName(Shape_axisOptions.Shape_axisOption3, "Y");
            configUI.SetPropertyControlValue(PropertyNames.Sub, ControlInfoPropertyNames.DisplayName, "Subpixel Level");
            configUI.SetPropertyControlValue(PropertyNames.Sub, ControlInfoPropertyNames.SliderLargeChange, 0.25);
            configUI.SetPropertyControlValue(PropertyNames.Sub, ControlInfoPropertyNames.SliderSmallChange, 0.05);
            configUI.SetPropertyControlValue(PropertyNames.Sub, ControlInfoPropertyNames.UpDownIncrement, 0.01);
            configUI.SetPropertyControlValue(PropertyNames.Sub, ControlInfoPropertyNames.DecimalPlaces, 3);
            configUI.SetPropertyControlValue(PropertyNames.Zconv_Factor, ControlInfoPropertyNames.DisplayName, "Z-Convolution Factor (%)");
            configUI.SetPropertyControlValue(PropertyNames.Zconv_Factor, ControlInfoPropertyNames.SliderLargeChange, 0.25);
            configUI.SetPropertyControlValue(PropertyNames.Zconv_Factor, ControlInfoPropertyNames.SliderSmallChange, 0.05);
            configUI.SetPropertyControlValue(PropertyNames.Zconv_Factor, ControlInfoPropertyNames.UpDownIncrement, 0.01);
            configUI.SetPropertyControlValue(PropertyNames.Zconv_Factor, ControlInfoPropertyNames.DecimalPlaces, 3);
            configUI.SetPropertyControlValue(PropertyNames.Zconv_Boundary, ControlInfoPropertyNames.DisplayName, "Z-Convolution Boundary");
            PropertyControlInfo Zconv_BoundaryControl = configUI.FindControlForPropertyName(PropertyNames.Zconv_Boundary);
            Zconv_BoundaryControl.SetValueDisplayName(Zconv_BoundaryOptions.Zconv_BoundaryOption1, "Neumann");
            Zconv_BoundaryControl.SetValueDisplayName(Zconv_BoundaryOptions.Zconv_BoundaryOption2, "Periodic");
            configUI.SetPropertyControlValue(PropertyNames.Interp, ControlInfoPropertyNames.DisplayName, "Interpolation");
            PropertyControlInfo InterpControl = configUI.FindControlForPropertyName(PropertyNames.Interp);
            InterpControl.SetValueDisplayName(InterpOptions.InterpOption1, "Nearest");
            InterpControl.SetValueDisplayName(InterpOptions.InterpOption2, "Average");
            InterpControl.SetValueDisplayName(InterpOptions.InterpOption3, "Linear");
            InterpControl.SetValueDisplayName(InterpOptions.InterpOption4, "Bicubic");
            InterpControl.SetValueDisplayName(InterpOptions.InterpOption5, "Lanczos");
            configUI.SetPropertyControlValue(PropertyNames.Tile_b, ControlInfoPropertyNames.DisplayName, "Tile Boundary");
            PropertyControlInfo Tile_bControl = configUI.FindControlForPropertyName(PropertyNames.Tile_b);
            Tile_bControl.SetValueDisplayName(Tile_bOptions.Tile_bOption1, "Periodic");
            Tile_bControl.SetValueDisplayName(Tile_bOptions.Tile_bOption2, "Mirror X");
            Tile_bControl.SetValueDisplayName(Tile_bOptions.Tile_bOption3, "Mirror Y");
            Tile_bControl.SetValueDisplayName(Tile_bOptions.Tile_bOption4, "Mirror XY");
            configUI.SetPropertyControlValue(PropertyNames.Preprocess, ControlInfoPropertyNames.DisplayName, "Preprocess");
            PropertyControlInfo PreprocessControl = configUI.FindControlForPropertyName(PropertyNames.Preprocess);
            PreprocessControl.SetValueDisplayName(PreprocessOptions.PreprocessOption1, "Neumann");
            PreprocessControl.SetValueDisplayName(PreprocessOptions.PreprocessOption2, "Periodic");
            PreprocessControl.SetValueDisplayName(PreprocessOptions.PreprocessOption3, "Mirror");
            configUI.SetPropertyControlValue(PropertyNames.Fit_tile, ControlInfoPropertyNames.DisplayName, string.Empty);
            configUI.SetPropertyControlValue(PropertyNames.Fit_tile, ControlInfoPropertyNames.Description, "Fit Tile");
            configUI.SetPropertyControlValue(PropertyNames.Points, ControlInfoPropertyNames.DisplayName, "Points/Iteration");
            configUI.SetPropertyControlValue(PropertyNames.Thickness, ControlInfoPropertyNames.DisplayName, "Thickness (%)");
            configUI.SetPropertyControlValue(PropertyNames.Thickness, ControlInfoPropertyNames.SliderLargeChange, 0.25);
            configUI.SetPropertyControlValue(PropertyNames.Thickness, ControlInfoPropertyNames.SliderSmallChange, 0.05);
            configUI.SetPropertyControlValue(PropertyNames.Thickness, ControlInfoPropertyNames.UpDownIncrement, 0.01);
            configUI.SetPropertyControlValue(PropertyNames.Thickness, ControlInfoPropertyNames.DecimalPlaces, 3);

            return configUI;
        }

        protected override void OnCustomizeConfigUIWindowProperties(PropertyCollection props)
        {
            // Add help button to effect UI
            props[ControlInfoPropertyNames.WindowTitle].Value = "Tiled Form - G'MIC-QT";
            props[ControlInfoPropertyNames.WindowHelpContentType].Value = WindowHelpContentType.PlainText;

            Assembly assembly = typeof(TiledFormGmicPdnPlugin).Assembly;

            string fileVersion = assembly.GetCustomAttribute<AssemblyFileVersionAttribute>().Version;
            string copyright = assembly.GetCustomAttribute<AssemblyCopyrightAttribute>().Copyright;

            props[ControlInfoPropertyNames.WindowHelpContent].Value = $"Tiled_Form v{ fileVersion }\n\n{ copyright }\nAll rights reserved.";

            base.OnCustomizeConfigUIWindowProperties(props);
        }

        protected override void OnSetRenderInfo(PropertyBasedEffectConfigToken newToken, RenderArgs dstArgs, RenderArgs srcArgs)
        {
            int color_space_id = (byte)(int)newToken.GetProperty<StaticListChoiceProperty>(PropertyNames.Cs_mode).Value;
            int tile_id = (byte)(int)newToken.GetProperty<StaticListChoiceProperty>(PropertyNames.Pretile_mode).Value;
            bool bool_use_clipboard = newToken.GetProperty<BooleanProperty>(PropertyNames.Use_clipboard_as_tile).Value; int use_clipboard;
            int tile_w = newToken.GetProperty<Int32Property>(PropertyNames.Shape_w).Value;
            int tile_h = newToken.GetProperty<Int32Property>(PropertyNames.Shape_h).Value;
            double ratio = newToken.GetProperty<DoubleProperty>(PropertyNames.Shape_ratio).Value / 100;
            double rotation = newToken.GetProperty<DoubleProperty>(PropertyNames.Shape_ang).Value * -1;
            int shape_mirror_axis_mode = (byte)(int)newToken.GetProperty<StaticListChoiceProperty>(PropertyNames.Shape_axis).Value;
            double subpixel_process = newToken.GetProperty<DoubleProperty>(PropertyNames.Sub).Value + 1;
            double zconvf = newToken.GetProperty<DoubleProperty>(PropertyNames.Zconv_Factor).Value / 100;
            int zconvb = (byte)(int)newToken.GetProperty<StaticListChoiceProperty>(PropertyNames.Zconv_Boundary).Value + 1;
            int interp = (byte)(int)newToken.GetProperty<StaticListChoiceProperty>(PropertyNames.Interp).Value + 1;
            int tile_bound_id = (byte)(int)newToken.GetProperty<StaticListChoiceProperty>(PropertyNames.Tile_b).Value;
            int preprocess_id = (byte)(int)newToken.GetProperty<StaticListChoiceProperty>(PropertyNames.Preprocess).Value + 1;
            bool bool_ftmode = newToken.GetProperty<BooleanProperty>(PropertyNames.Fit_tile).Value; int ftmode;
            int refpts = newToken.GetProperty<Int32Property>(PropertyNames.Points).Value; int pts = refpts;
            double thickness = newToken.GetProperty<DoubleProperty>(PropertyNames.Thickness).Value / 100;

            //This is required to assign exclusively numbers for g'mic processing.
            if (bool_use_clipboard) { use_clipboard = 1; } else { use_clipboard = 0; }
            if (bool_ftmode) { ftmode = 1; } else { ftmode = 0; }

            string[] shapes = new string[] { "australia", "barbedwire", "circle", "crosshair", "cupid", "diamond", "dragonfly", "flip", "gumleaf", "heart", "information", "kookaburra", "mail", "mapleleaf", "paintsplat", "paw", "phone", "polygon", "rooster", "shopping_cart", "snowflake", "star" };
            string gmic_pdn_shape = "gmic_pdn_shape_";
            gmic_pdn_shape += shapes[tile_id];

            using (PdnGmicSharp gmic = new PdnGmicSharp())
            {
                // Add the source surface as the first input image.
                using (PdnGmicBitmap source = new PdnGmicBitmap(srcArgs.Surface))
                {
                    gmic.AddInputImage(source);
                }

                // The following code demonstrates adding an image
                // from the clipboard as a second G'MIC surface.
#if USE_CLIPBOARD
                IClipboardService clipboard = this.Services.GetService<IClipboardService>();

                Surface clipboardSurface = clipboard.TryGetSurface();

                try
                {
                    if (clipboardSurface != null)
                    {
                        using (PdnGmicBitmap clipboardBitmap = new PdnGmicBitmap(clipboardSurface, true))
                        {
                            // The PdnGmicBitmap takes ownership of the clipboard surface.
                            clipboardSurface = null;

                            gmic.AddInputImage(clipboardBitmap);
                        }
                    }
                }
                finally
                {
                    clipboardSurface?.Dispose();
                }
#endif
                if (tile_id == 20)
                {
                    if (refpts > 6) { pts = 6; }
                }

                if (tile_id == 21 || tile_id == 17)
                {
                    if (refpts < 3) { pts = 3; }
                }


                if (tile_w > 0 && tile_w < 4) { tile_w = 4; }
                if (tile_h > 0 && tile_h < 4) { tile_h = 4; }

                if ( tile_w==0 || tile_h == 0)
                {
                    if (tile_w > tile_h)
                    {
                        tile_h = tile_w;
                    }
                    else
                    {
                        tile_w = tile_h;
                    }
                }

                string command = string.Format(CultureInfo.InvariantCulture,
                                               "end_image_list_id={{$!-1}}\n" +
                                               "cs_conv={{s#0>=3}}\n" +
                                               "tvv=0\n" +
                                               "repeat s#0\n" +
                                               " sh[0] $>\n" +
                                               " tvv+={{iv#-1}}\n" +
                                               " rm.\n" +
                                               "done\n" +
                                               "if !$tvv return fi\n" +
                                               "m \"gmic_pdn_shape_circle: shape_circle $\"\"1\"\n" +
                                               "m \"gmic_pdn_shape_cupid: shape_cupid $\"\"1\"\n" +
                                               "m \"gmic_pdn_shape_diamond: shape_diamond $\"\"1\"\n" +
                                               "m \"gmic_pdn_shape_polygon: shape_polygon $\"\"1,$\"\"2\"\n" +
                                               "m \"gmic_pdn_shape_snowflake: shape_snowflake $\"\"1,$\"\"2\"\n" +
                                               "m \"gmic_pdn_shape_star: shape_star $\"\"1,$\"\"2,$\"\"3\"\n" +
                                               "m \"gmic_pdn_shape_heart: shape_heart $\"\"1\"\n" +
                                               "m \"gmic_pdn_shape_australia: base642img \"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\" decompress_rle. r. $\"\"1,$\"\"1,1,1,5 if $\"\"1>512 b. 0.2% fi >=. 40%\"\n" +
                                               "m \"gmic_pdn_shape_barbedwire: base642img \"MiBpbnQgbGl0dGxlX2VuZGlhbgoxIDY5MSAxIDEgIzk3Mwp4nI2WSWyNURTHP1qvqvpqnh4RNSwIQWtKDAlaNbQUbdASG0QsEGJhQSIRK0OCDZFgIRYskEhEQsJWYowhhmpLa54aauh71//k+33ezUuFxcsv95xz7z3n3P+93ws6BkGgX4cg/AUwWZtyWWJWyv1htpgNbdxJ7CTGxJiYA2MeG5xztt4w/C9duF4JbMTe5MJ1S2Fkb2Zc4tk7i69cuP8c2ED8a88ey7DbuMyz2zpviC+DdeTdxn6fsc9lXh3rJf/hTzH+kuF/xvqZ/nkunPc//jh288+HT2TPz7Bb/FPZu5Kn2Rdgz4yP7I+Jb8+eJ34in7/Zy7E/kr3Lf9grXHgOzejqJ7oQXK74kbgqaHab/9o7pzhxtv5ysYedK+dg8d09f43YW3wrf1/xPfZasY/4TvYB4gfqXyn2t3GG/ZwL5zcyr9XhV1yCcTb5WfwN8v4qDqP+GejYrmBCHCN+d2n9GG+K3dDbaPpTgp5t/RHiJPEH/XL0846417sPI8XprGP9uSfu9/xjxRrxgXjAuy9n4AFxtZ2feJB7Y/bzYk/xuVho+hTXmi7EI9RpdVwUB6LDyfRxg+lTPEFfLO9L4lDqLxN/iVuD8B05zdjiLovvyXMQ9tFwGXVaP66Ih1lvFfsPRN+FjJd48Vep385vdxC+SwWc80LO0+Ku0b8WcZd4QZxI/3t6cdfFQ9S3Qzwrjucc4+RrcXdd+E620DfTwXbxNP1KUncUf5++Wp7HsW8TT6Krn8Q1efO6oJNT5LlFPCZO9eKb0bvlP4q8Z8Ey5pWLR5kX6c7OIUGfh7NOMdwnHhGnUZfFv2W+1TFEfEgfD7UTZ/reJW4U91CP5THY03Mr8e/Yd7u4Rtzp0u9KIki/a9/oh93/ceJmcYW4ibh6/J/xr6fudfTH9J5Hn+x8VotzPH+dOFOsFvsR15V87b1Yi910PVtc7MJ3yfz5GXG59DWffs4VK8VexMXxx+mL6WINbCPPJs5vkafPuLdu9N5Uu/T32I9PuvR72g3avCov3uqv4Dwy41PUX0X/X3rx0fcu15uX5N5F86K8bF5pEH7fOqKTLPQdzYvD9uZNYb9f5N/GOVd5cTH0Xkx8jnc/WhkvJc7e2SJv3e/os4S42+gnWieaH/lvsc80xt9Yp5R1XojVQfp72+LS/5NsbO/SMvpo4wmefTnnZ+NiF77z9ei80rNnodcadGj7F4i11JnDeDDnmeCexb2+FaDnVvTfwH5R/+27av4ixvb97eONX6VCnRVRd1Mq/G5H/kb+90T+ev5HjCH/vMqU+w2wUyNRMSAxNSAxIDEgIzM4Cnicc2dgYPAF4igGCCgB4nwkWg+Ik4E4E4hzgTgdiKugagGdcAT9\" decompress_rle. r. $\"\"1,$\"\"1,1,1,5 if $\"\"1>512 b. 0.2% fi >=. 40%\"\n" +
                                               "m \"gmic_pdn_shape_crosshair: base642img \"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\" decompress_rle. r. $\"\"1,$\"\"1,1,1,5 if $\"\"1>512 b. 0.2% fi >=. 40%\"\n" +
                                               "m \"gmic_pdn_shape_dragonfly: base642img \"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\" decompress_rle. r. $\"\"1,$\"\"1,1,1,5 if $\"\"1>512 b. 0.2% fi >=. 40%\"\n" +
                                               "m \"gmic_pdn_shape_flip: base642img \"MiBzaG9ydCBsaXR0bGVfZW5kaWFuCjEgMTM3NSAxIDEgIzE3NzgKeJxdlnl0VdUVxr8bKWEqMgoOCIQkICQMFnPfe8l7CSGkSlAxGMQAUWODVFLKAkqRwYYGWUKtVsWpdaFVsOhCRERFREWlCghI0VIZa0WpUgeotra2nt3fOSqL+sdZv+z7Xu67dw/f/pSlrEiRxOm8Ik8DXUKlrlJVbrRqXK3qXL2ucVM01U3XT9x1mu+a1OwWabG7Sbe427TU3al73L1a5u7Xg+4hrXSPaJVbrTVurda5p7TebdBG97w2uZe02b2iLW6btrudet3t0m73pva4t7TP7dcBd0hvu3d02L2rI+59feCO6kP3sT5xx/R396k+c//U5+5f+sL9V186J3OKsuyUqIW1jLKtVdTa2kRtrV3U3jpEHa1T1Nm6RF3ttKibdY9Ot8X6ty3RmTZPB22+zrafaqfNUi+boc02XTn2Y22wqcq1Rq21Kcq3a7WKc45do+WcAdagZfYDFdjVutvqVWhXaSmn0CbqZrsC1mqJ1cGxWmgT4Bg12Xg4WvP4rNAu1Gy7HI7UTBsHv69pdhmsUKPVcN9hmmyXwowaAktUzz0KLKk6q4axJgQO1TjuOcCGqCZwkKrtYlio0YH9Ncougv00kt/sb3mqtFGwjyoCe6vcqnivs1UaeJZKeKZz7AylArsrYReon52mosDO+l5gRw2x89XXTtVAnr2vfZdn8WzLPSvJV2u+45nNGaE8+w659DyF3HpG5LpCw50/w1XOOfnvcleuYeEMUxnnG5a5Mnqx7ARLXakynG+YcZkTTLs0Oc7Sq/w9x1rAtOZaS/otQw2yYVrzrVW4/jNrE+ImawdLtMDaayvxz3m/rcTN1iHEN1inEC+yLrAYdtU24hutGyzWYvLluYT8ed5EPl8L7AFT+qX1pNeLdYv1CvyV5cCUbrVc7SC+jfrsIL7d+monXErddrik7qCOPr7LCpgTz0KYpPcGaRfxr21wiH9j5xIndS998YfA8wKX0S+74X2WCLzfUjCh39JXbxA/YGm9CR+k397g+nIrI05ohZXrj/AharWHz39H7fYQr6S2ng/TA3+Cj9ArbwVWBa6i1/bCR+k9z9X05j74GD27z8VwjPbDNfT6Aa6vZU48n2AWDnB9HTNyMHC8DsEnmas/w6eYKc+n7Uq0IdZ6Zs/zGebwL3ADc/kOfNYmBW60yehHrOeY3XcDp+g9+Lz9CE2J9QIz/p4r0iabRlykF5n9vwbO0PvwJZsJYzRhFvoT6/c2W0fhKzZHfwuciybFehUd8dxi1+sjuNWa9HHgAvQq1jZr1jH4mi0M3G6LdBwupy7H0c7t8JhbyOeezXw/5v8W8P8x92kK/Mhdz/1jfmcev+c5l9+PeY45gUfdbJ4v5jln8bwxzz1TLwfO4H2KeK/pgUfcNN63iPeeyvsXkZdG8hETTyE/MfG1gYfdZPIXk8dJ5NOzgfzG5Plq8h2T93qYgFdSj5i61FEfz4nUK6Zu46lfTB1rAw+4cdQ3AcdSb88aPQ73uzH0Q0xfVAfuZc+s5vpedxH943kh/ZSgr6ror5h+GwkT8Hz6L0EfVtKPniPozwT9WgGTsJz+TdDHZeQ5QV9n6O8kcZp+TxKX0P9+HlLMQzLMw32BMfOSZG7OY348hwbucucyX0nmbDDzliIexPz5uJB5TMGCwJ2uv+6EO1w/5tfHfZlnH+cx38Uwl3lPMfc5zH8KXeiFHhQT90QffNwDvSiGZwVuc2egJ57d0RfPbuhNCeyK/hSjQ11gCeyEPpWgXx3QKx+fin6lYXv0zF9vh76lYRv0Lo3utUL/fJyNHvq4Jfro2QK9zMAsXWdeRzPf0tbSk3T3//W47Ft6PexrHS8/ofHDT/r7K/2voG7+jKCO/vRDs3uiL/3R7F7slAI023MgWu05hB3Tmx00lJ3jWYRGeybYSTnoUIod5VmCNuegR2Voch92XTma7FmBJntWsvP6oFMj2YG56NQodmIuO3O05QdWo72eNTaAfXUJe7YQVrN3BwfWobV56Fg9GpvHjm6gNz0nU8N89KyRXOaz06ehpfno2kwbDi9nJ/m9WEvOL4DjqckoOAGfcDGso9Zj4BX4iLHQ+4pa9qr3GROh9x1XQe9DGqD3JT/ke96nNPL7X/mW3uiY9zE90S3va3rgcQ5xzrRf6D/4ntPxQN3wQl3xRJ3xRh3xSO3xSm3xTK3xTtl4qBaWFUWmyPBWX+KxvsBrfY7n+gfe6zge7BO82Id4sg/wZkfwaIfxam/j2Q7i3fbi4fbg5Xbj6V7H223H423B623G823C+23EA67HC67DE67BG67CI650K/QAnnEZ3vEePORSd6tuxlMuRh+b0cB5eM1ZaNhU9GkS2lOHrtSgFVX0TobZHchcdVrxPzrt8oExIDE1IDEgMSAjMzMKeJxzZ/BliGJgYChhyAdjPYZkhkyGXIZ0hiqgKABOuAT9\" decompress_rle. r. $\"\"1,$\"\"1,1,1,5 if $\"\"1>512 b. 0.2% fi >=. 40%\"\n" +
                                               "m \"gmic_pdn_shape_gumleaf: base642img \"MiBzaG9ydCBsaXR0bGVfZW5kaWFuCjEgOTY5IDEgMSAjNTk2CnichdXnVuMwEAXgiUMNvXdC76GFQICE3kkoSahPuu+xr7HPcM/OjGxFArP74zszNgdbVqQrCihIUIKIdf7mCiOBgEXVCJAM1fukrQ3au7UBjczURjQxU5tUs63NaKEW1UqtzNQUpdBGbWindtVBHaqTOtHFTO1S3dSNHupRvdSr+lSf6qd+DNCAGqRBDNGQGlbDaoRGMEqjaozGME7jzNQJmlCTNKnSlGZRTWOKptR0WE0/bc3QjDVLs9YczVnzNG8teP2CWqRFa4mWPMu07FmhlVirtIa1/8hQxrGO9R9s0EZoE5sxtmgrtI3tGFnKsh3sxMjRLna/2cNerDzynn3sf3OAg28OcRgqUIEVUfQc4chzjGPrBCfWKU6tM5xZ5zi3LnBhXeJSXeGKXdM1u8GN5xa3se5w96N73LOv993/c5914/X1d/9rLPFj88fwdTxGCSVVtrWsHvBgPXr9o+cJT+rZ1mergoqqosrc3lzX+yrVUFMveFGveA3V+ze8We94tz7wYX16/WfI7b9e+33ccz7sO6J3umOIxhSNsT5u8y3ud9XC76x6c1KxcxXN3VM4r4/O3Jftb1TS381dU9EauOZ1K2tY1rOsb1nvsv5lP0R7RPZMUfdVQfdYtO9kP+Z530b7Okc53fNZzgTJC8kOyRXJmAznkeSWZJrknGSfZKHkpeSn5KlkrWSw5LNktWS3ZLnk+yCT7JfzoIvPCDk/UnymtPD5ImdPA59HST6fjCSfa4Z77fdJPft+vh+Ez3BrwOdoEPN39370jF9//gJSgJz1MSAxNSAxIDEgIzMzCnicc2fwZYhiYGAoYcgHYz2GZIZMhlyGdIYqoCgATrgE/Q==\" decompress_rle. r. $\"\"1,$\"\"1,1,1,5 if $\"\"1>512 b. 0.2% fi >=. 40%\"\n" +
                                               "m \"gmic_pdn_shape_information: base642img \"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\" decompress_rle. r. $\"\"1,$\"\"1,1,1,5 if $\"\"1>512 b. 0.2% fi >=. 40%\"\n" +
                                               "m \"gmic_pdn_shape_kookaburra: base642img \"MiBzaG9ydCBsaXR0bGVfZW5kaWFuCjEgOTU5IDEgMSAjMTEwNwp4nI2VeWyVRRTFz3TfH6Eo7qLFSDSKgFBKSyGARSgICCggdYni0gaDiSHRhESjiYZocMEqFCioiNWispQlRNPUQsUCLbZQS21tKd33je7net+88nwvmugfv5z55r2Z755778wHH/gYGEDpTXVgHO/DJE7BNEZjOVdgHQ36JAnJTMEGvoKN3IjX+Do2cRPe4Jt4i2/jHb6LzdyM9/g+tnALPuCH+Jhb8QlT8Rm3YTu3I82Shh3cgZ2WnZZdll1IZzp2cw/2KJ/zC3zJvdirfMV92MevkcEM5Rt8y0xkcj/28zt8zwM4wIM4xEPKYRweIYtZyhEcsRzFMR5TjuMET+BH/oRsZiOHOcjlSeQxD6d5GvnMxzkW4jcW4QIv4neWooxlqGAFKlmJy7yMGtaino1oZiva2YFu9qCXfRjgIEgCYoyv+Bp/8TeBEmRCJMSESbhxiMOMktEmUpZgQLJxvSSiS/UGSUCz1XjUSA4i5X6UqYbLTTgnP2uMuTbGXJ7CKY0zT+P8VePM51mNtQAFPG/jLeIFG3OJxlzKSxp3Oco17gqNu5JVGns1qllj469lvXpoQAOb0MRm9dKCFrahje3WUwe70MVu662HvdZfH/st/epzkEMY4jCG1S8pFqExRnyMj3r3FT/jp/79JdAEKM48BEmwCdZchEioCZUwmxMn4RKheI4jTIRbHR5j77n/r97rw+17wkfeH+bW0JG4nOqKMdTWLtgS7NYg9eLy41SnvwD1GTCi/urbz9bfx+bCR3NiDARGbJ6oORvW3A1ZBjWXAxzQnDpz26d57sVVzXm35r5La9DJTkuH1qTd0q41akOrrZVLW7UPWywtto7NWs8mS5NbGy2NWu8GW/d6rX+dpU57oW5Ea21v1GiPXLFcsVRbqm3/VGkflWtflfEPey4uaZ85z0gJS3BRe69Ye7CYxdqLRTivfVloKdQeLcBZ7dczPKN968CwHNfzFoZ+OaoagquShV8YrOfhoPZ3INrlB5ykH5okU/veF/WSYe+CdO7WeyLd4rw30vQOcd4n2/gqKOPxKTdgUKKQypd17ztV16NX7tD59eiRcaop6JTb9T5K0XfcppqMVrlV1yfrGbxF9SU0ys16V72IOrlRn1/QMzlW//c8quU61XWokjG6z3P4U0br/s+iXBzYymdQKmFWSyQYH/FpPMUnkcQkrOVaPME1WKOs5mqs4io8zsewkiuxQu/W5XwUy7gMS7kUS/gIFnMxFnEREpmIhVyIBVygPIz5nI8EJuAhZR7nYS7nYo5lDmZzNmZZZiGe8ZipuHSme+w97/otjnGIVVwaa8feGosZbp2BGMWlMXbs0hhMd+v0/xx7rru2n+feLmK9xrHuZ++x99y/6z89xXn87unfqa6c/K3X1nh6jUa0Mo1TMdXyIKbot9LJZE62TOIDmMiJuJf3YAIn4G7ehfGMQhTHQiRIv69jEMlRiGAossr/As3XmqgxIDI2IDEgMSAjNTMKeJxzZ/BliGJgYIhmMGJIYVBgyGbIB8JshkSGJIZShiIgTASKFjNkAOkChlSGWKBaAORKCL8=\" decompress_rle. r. $\"\"1,$\"\"1,1,1,5 if $\"\"1>512 b. 0.2% fi >=. 40%\"\n" +
                                               "m \"gmic_pdn_shape_mail: base642img \"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\" decompress_rle. r. $\"\"1,$\"\"1,1,1,5 if $\"\"1>512 b. 0.2% fi >=. 40%\"\n" +
                                               "m \"gmic_pdn_shape_mapleleaf: base642img \"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\" decompress_rle. r. $\"\"1,$\"\"1,1,1,5 if $\"\"1>512 b. 0.2% fi >=. 40%\"\n" +
                                               "m \"gmic_pdn_shape_paintsplat: base642img \"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\" decompress_rle. r. $\"\"1,$\"\"1,1,1,5 if $\"\"1>512 b. 0.2% fi >=. 40%\"\n" +
                                               "m \"gmic_pdn_shape_paw: base642img \"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\" decompress_rle. r. $\"\"1,$\"\"1,1,1,5 if $\"\"1>512 b. 0.2% fi >=. 40%\"\n" +
                                               "m \"gmic_pdn_shape_phone: base642img \"MiBzaG9ydCBsaXR0bGVfZW5kaWFuCjEgMTU2OSAxIDEgIzEzMzEKeJytl2tQVVUYhj80R9IkTTLUFBUGJURB7sjtYDlZWWlmgefA4S5qkvcbXiC72G0q07KypKvTWDaWZXkp85aXQGH60dTUTDP96ddm/P/t3u8954gcjjPW+GPNs58FrL332mut90P6Sb8oiRJBm3l5sMToMInVERKno+ROHSPxOl4SNFGSdKIka7Kk6GSZolMlXdMlU7MkR3MkT/OlQAukSIvFox60UilFC+dcjRLH9cg8vUm63VKZrwPoj+lAeplG08t1EN2rg+k+HUKv1Bi6X4fSq0DzajyzA6/V4eyv01h6A96jO0jzRo2jL9KR9CU6mm40X4r3NW/SsRy3SePpy3QcfblOoK8AzVdiXsxXgearNYm+BjRfq5Po6zFvIdp9mjWFbjTfpKl0o/kWzG93kOYtmkZvxZzbuK06jb5VM+hbNZP+NGj+jGbTnwXNn9Nc+jbQfJvm0V/AdzMPsFRe1Onsfwnf0vxlLaQbzV/B9+0O0vxVLaEbzbfjG3cHaeNu1xn0HXo3fYfeQ98Jmu/UmfQ3QPM39V76LtB8l86ivxXk23of7/OO3k83mu/WB+hG83d1Nv09fZC+Rx+iG23cPfowvQ00b9M59PdB8w/0EXiA5h/qPLrRcUvAR+G96bjF4Hx4gI5bJB/p4/AAHbcQLIMH6LgFYDl8On6/HJ4PLoAH6Li5uL8XHqDjZuP5fPAsPK8PnglWwDPwPhXwdLxvJTwN718Jn4L5ME7GvPnRn4J59MMnYZ6r4EmY/yp4gryu1fDx8hrouGPxfWvgo7EOauBxWB+18BFYN7Xw4VhXdfBhWG918Bh5Suvht2Cd1sNvls3aAB8oG0HH7Y91vxAehf2wUBZqI/ZhqC3CXuxpjfx5A/ZrvdSz1WEv12JfW6uRGrZq7PsqND/OgVCrxNnQ0yowP76IzSsLMLfhrRzzH97K8I0CLVJfT39kv/pvQtehe11939C1F2ed9wq9eNYQfbwOPX/FFVbwOsBAq+zDwFyE5sV/hX5e96Yfc9qbkfp6WMXr6+N/+d1rj1Edxhs55o0aqxpZFGCbGy1nsV4/dofKBfheN1ba4fvckdIB7nfHyCWs6wPuOPIg9mEn1vsh7EvjYTdZurAHjmHfdoLHsZ+7sDdOYp8bz2Dfd2G/nHdzyHY3D1wknThXjL/g3OnSJfIrzi3jbzjfunSp/E42yR/kMvmTXCF/kWvkb3KD/EO28vzrBO187NSW/+ktPIeN1n9Jt1yXG6/tHrkY9Iu6OaJ3gJG8Qzf1cWO7buR9wt0YyX/W5gjuwfdupl/APEby86D5eV0f0c+B5ud0XdDX8T5G6z+ra+lG85/w3SK50fyMrqYbzU/rKo57OsxPgeandCX9JGh+EuvD/ARofkKX93Hjj1hPTpDmx/VJutH8B6w7J0jz77EenSDNj+kTHPcoaH4U69b8CGh+RBfTD4Pmh7HOzb8DLZ+/RaaYH2LeeOQb5k+JfM1cKpGDzKkS+Yq5VSxfMseK5QBzrUi+YO4VyX7mYKF8zlwslM+YkwWyj7lZIJ8yV/NlL/M2Xz5h/uYit3298rqN+Z2NXC5nXu9m3mcgh60emIb6xuqDdOSw1Q1TUS9ZHZGK/LV6YzLqLqs/kuV5nQufiNy1+iQReWv1ywTkrNU38bKB9c4Y5KvVP6NQl1p9dAfq11nwWFnMuuo25KrVWbciQ60OG4KzfwZ8EHLIA49GPW513QCZw7qvv8xGPZiLmjELdWQGas001J+pqFGT9S5J1AT8f3C7VF3+F5FZ+PIxIDE1IDEgMSAjMzMKeJxzZ/BliGJgYChhyAdjPYZkhkyGXIZ0hiqgKABOuAT9\" decompress_rle. r. $\"\"1,$\"\"1,1,1,5 if $\"\"1>512 b. 0.2% fi >=. 40%\"\n" +
                                               "m \"gmic_pdn_shape_rooster: base642img \"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\" decompress_rle. r. $\"\"1,$\"\"1,1,1,5 if $\"\"1>512 b. 0.2% fi >=. 40%\"\n" +
                                               "m \"gmic_pdn_shape_shopping_cart: base642img \"MiBzaG9ydCBsaXR0bGVfZW5kaWFuCjEgMTM0NSAxIDEgIzEzNDIKeJytlWlQlXUUxp9jWippabmmuEI5jjlFkFcREC/34kbCVYlAQYGATAkHF1RwQZFFzS1TUzNX3PdtmpxmaiZrpj6UzdQH/aRT5mRZpq3/03Pf+/JyL5Cf+vDM7z3/dz/nOeePVmglEICadj0Ro00qUo0PPmqSzQcd+0xa0PF/XZcWcn2aEz/4OM3E4p62w0QzDMNMDGJMtKVoWzH2WmPc8rnm1zU9F4M8zZW9ulcu6AXqvJy3dU7PUWflrKMzciZEp+W0o1NyKkQn5aStE3qCOi7HHR2TYyE6KkcdHZEjQTqsh+SQo4NyMET1Uh+iA3LA1n7dJ/sceXBD3RYvajf+qwdr9Bb8zNFLFl/Q9dhDttNXLX5n3KQXN02STTd2kz8wfo/nG+nGLvIW4+b04kfy3SDeNp4mTMJO8ifGDdzB+38mtzv04o7NX4zXpgfvkL8yDqUH28i7jBuZjHsm2aYXW7jewPtcD9CLt8nfGQfzDzPGZjI28/4/bf7F9WD+TW7idQ38x4y1OQYbeV4ZBxM6zuZYbAiicD3AsVhPtmK8jnzIZmsdb3Mc3iTbMG6JD5Nr+Yy2FifhCZ1AZuEpxmtY40jGq3U2hlpcAJfF5XCTdVqHCRY3I0NTyF3IZVyrh1HMuFbPoszih1hh8TO+MwXVeoU59vMaPeXnTZwgV+ldvG9R8Ym+RLaXLy12katcr9I+8j3jKh0sdy1WSZWulBW6wlalVIZouSx3tEyW6tIgLZEljiqkXMtlvs6XEi2Rmfqa5Gu+ZGu2ZGiG+DRNxut48ahHEjReXOqSKI2SITpEIjVC+vC7emgP6aydJEzDpI22EWMMvXGffrxDj9/CDXMdV801fGO+xVfmCj43X+Cy+RQfmY/xgbmEC+YiTpszOGaOo94cxB6zBzvMTmwxW7HRbMJasxbVpgaVphLlpgJlZiFKTSlmm2IUmSLkmXxkm2xkmalIN+mYYFKQTA8m0edu9l6iSUSCGUUlIM7EYaSlkZZiOUNHWBphabgZbsllM3DsakGN51uWKyRueL7/fX4F3h+g/5viTbylBKrKVNGTbaVOa6XWUY3UOKp2WO1olayyPBHwxUpLwd5o9MIyxwMVUsHal1taLIt1kSzShbJQy6SMfpiv82SezpW5WiqlOkfm0B8lWizFOktm6Ux6pUiKtEAKNE/yNEdyNFMyNVzC9TIKbwvCTBekaUd8bXojU7vTAwMwQ/viuhmEQo3kvByC13Uw59tzeEOHcl5Fo1SjOHdcWKAx9NAILNLhnB9xqNBYGNZwqcaz70ejUhPZ70lYqW72s5d94sEjOgY17Ot27Ps69nUY+3ENe7kD+8Xfe49pKufFRHRSH+dKGvt9MuePD0+Sb1FdNZ1zbAq6aQa26svobjEDPTWTc/MVm5nopVM5f7NsTkW4ZnNOT7OZjb46nXM/x+Z09Ndc7g8zmjAXAzUf+zSvCfMRQe235k8BDjRjAZ4OYr0WBrEQB6lntOh/ZcNzm7+v+ff4vzOCCjDwHxFB/+XnQP77Xv7vgCD689GfudrN/PQLoj9/fZnTXcxnHzu/4cz5Tua7t53/XqzJdtajJ2vkr09P1mwbj7uznltYx25WXdNZ38nch6aw3j7WfRI60w8b6INOli9S8Th9so7+6GjtAyl4lD5aTf+0p69qrX3Cy3nt3zeSOH899N8o+tBNP8bTl6O4b42kT+PoVxd9G8v98EX6eBh+M1H0dTT9PRQl+jz9Phiz9Fn6P5J9MIjzsR/3joG4ZnogS8PZLx3h067oYFoj7sa//BfTxjEgMTUgMSAxICMzMwp4nHNn8GWIYmBgKGHIB2M9hmSGTIZchnSGKqAoAE64BP0=\" decompress_rle. r. $\"\"1,$\"\"1,1,1,5 if $\"\"1>512 b. 0.2% fi >=. 40%\"\n" +
                                               "m \"gmic_pdn_multicut: repeat s $=a $=b val_a=$\"\"{{a{{$>*2+1}}}} val_b=$\"\"{{b{{$>*2+2}}}} sh $> cut. $val_a,$val_b rm. done\"\n" +
                                               "color_space={0}\n" +
                                               "tile_id={1}\n" +
                                               "use_clipboard={2}\n" +
                                               "tile_w={3}\n" +
                                               "tile_h={4}\n" +
                                               "ratio={5}\n" +
                                               "ang={6}\n" +
                                               "mirror_mode={7}\n" +
                                               "sublevel={8}\n" +
                                               "interpolation={9} interpolation={{$interpolation>3?$interpolation+1:$interpolation}}\n" +
                                               "tile_boundary={10}\n" +
                                               "preprocess={11}\n" +
                                               "fitmode={12}\n" +
                                               "ptiters={13}\n" +
                                               "thickness={14}\n" +
                                               "z_convolve={15}\n" +
                                               "z_convolve_boundary={16}\n" +
                                               "if $z_convolve\n" +
                                               " offpixel={{$z_convolve*-1}}\n" +
                                               " onpixel={{$z_convolve*2+1}}\n" +
                                               " ($offpixel/$onpixel/$offpixel)\n" +
                                               " store. zmap\n" +
                                               "fi\n" +
                                               "ow={{w#0}}\n" +
                                               "oh={{h#0}}\n" +
                                               "if !$tile_w&&$!$tile_h return fi\n" +
                                               "mini_w={{ceil(w#0/$tile_w)}}\n" +
                                               "mini_h={{ceil(h#0/$tile_h)}}\n" +
                                               "nw={{$mini_w*$tile_w}}\n" +
                                               "nh={{$mini_h*$tile_h}}\n" +
                                               "convert_colors_fwd=${{arg\\ 1+$color_space,none,rgb2ryb,cs_error,rgb2hcy,rgb2hsi,rgb2hsl,rgb2hsv,rgb2lab,rgb2lch}}\n" +
                                               "convert_colors_bwd=${{arg\\ 1+$color_space,none,ryb2rgb,cs_error,hcy2rgb,hsi2rgb,hsl2rgb,hsv2rgb,lab2rgb,lch2rgb}}\n" +
                                               "if $color_space>=0&&$color_space<3 cutf_vals=0,255,0,255,0,255,0,255\n" +
                                               "elif $color_space>=3&&$color_space<7 cutf_vals=0,360,0,100,0,1\n" +
                                               "elif $color_space==7 cutf_vals=0,100,-176,176,-176,176\n" +
                                               "else cutf_vals=0,100,0,255,{{-pi}},{{pi}}\n" +
                                               "fi\n" +
                                               "if $cs_conv\n" +
                                               " if $color_space\n" +
                                               "  if $color_space!=2\n" +
                                               "   sh[0] 0,2 $convert_colors_fwd. rm.\n" +
                                               "  else\n" +
                                               "   l[0] if s==4 s c,-3 rgb2cmyk.. a c else rgb2cmyk fi endl\n" +
                                               "  fi\n" +
                                               " fi\n" +
                                               "fi\n" +
                                               "if !$use_clipboard k[0] " + gmic_pdn_shape + " {{max($tile_w,$tile_h)*$sublevel}},$ptiters,$thickness\n" +
                                               "else\n" +
                                               " if $!==2\n" +
                                               "  .\n" +
                                               "  if s==4\n" +
                                               "    s. c,-3 to_gray.. *[-2,-1]\n" +
                                               "  else\n" +
                                               "    to_gray.\n" +
                                               "  fi\n" +
                                               " else\n" +
                                               "  r[0] $nw,$nh,100%,100%,0,$preprocess,.5,.5\n" +
                                               "  r[0] $mini_w,$mini_h,100%,100%,2\n" +
                                               "  r[0] $nw,$nh,100%,100%,1,0,.5,.5\n" +
                                               "  r[0] $ow,$oh,100%,100%,0,0,.5,.5\n" +
                                               "  return\n" +
                                               " fi\n" +
                                               "fi\n" +
                                               "if $ang-360*int($ang/360) rotate. $ang,1 fi\n" +
                                               "if $mirror_mode==1 mirror. x elif $mirror_mode==2 mirror. y fi\n" +
                                               "n. 0,1 autocrop. 0\n" +
                                               "if $fitmode\n" +
                                               " shape_image_ratio={{w#-1/h#-1}}\n" +
                                               " target_image_ratio={{$tile_w/$tile_h}}\n" +
                                               " resize_width={{$target_image_ratio>$shape_image_ratio?w#-1*($tile_h/h#-1):$tile_w}}\n" +
                                               " resize_height={{$target_image_ratio>$shape_image_ratio?$tile_h:h#-1*($tile_w/w#-1)}}\n" +
                                               " r. {{$resize_width*$ratio}},{{$resize_height*$ratio}},1,1,$interpolation,0,.5,.5\n" +
                                               " r. $tile_w,$tile_h,1,1,0,0,.5,.5\n" +
                                               "else\n" +
                                               " r. {{w#-1*(1/$ratio)}},{{h#-1*(1/$ratio)}},1,1,0,0,.5,.5\n" +
                                               " r. $tile_w,$tile_h,1,1,{{$interpolation}},0,.5,.5\n" +
                                               "fi\n" +
                                               "cut. 0,1 n. 0,1\n" +
                                               "if $tile_boundary==0\n" +
                                               " r. $nw,$nh,100%,100%,0,2\n" +
                                               "elif $tile_boundary==1\n" +
                                               " r. $nw,100%,100%,100%,0,3\n" +
                                               " r. 100%,$nh,100%,100%,0,2\n" +
                                               "elif $tile_boundary==2\n" +
                                               " r. 100%,$nh,100%,100%,0,3\n" +
                                               " r. $nw,100%,100%,100%,0,2\n" +
                                               "elif $tile_boundary==3\n" +
                                               " r. $nw,$nh,100%,100%,0,3\n" +
                                               "fi\n" +
                                               "avgc={{avg(crop(#-1,0,0,$tile_w,$tile_h))}}\n" +
                                               "+negate.\n" +
                                               "r[0] $nw,$nh,100%,100%,0,$preprocess,.5,.5\n" +
                                               "+*[0] [-2]\n" +
                                               "+*[0] [-2]\n" +
                                               "$mini_w,$mini_h,2,{{s#0}},\"begin(\n" +
                                               " const avg_c=\"$avgc\";\n" +
                                               " const tw=\"$tile_w\";\n" +
                                               " const th=\"$tile_h\";\n" +
                                               " const wwhh=tw*th;\n" +
                                               " const w_avg=wwhh*avg_c;\n" +
                                               " const iw_avg=wwhh-w_avg;\n" +
                                               " );\n" +
                                               "if(z\n" +
                                               " ,sum(crop(#-1,x*tw,y*th,0,c,tw,th,1,1))/iw_avg;\n" +
                                               " ,sum(crop(#-2,x*tw,y*th,0,c,tw,th,1,1))/w_avg;\n" +
                                               ");\"\n" +
                                               "if $z_convolve\n" +
                                               " $zmap convolve.. .,$z_convolve_boundary rm.\n" +
                                               "fi\n" +
                                               "if $cs_conv\n" +
                                               " if $color_space\n" +
                                               "  if $color_space!=2\n" +
                                               "   sh. 0,2\n" +
                                               "   if $z_convolve gmic_pdn_multicut. $cutf_vals fi\n" +
                                               "   $convert_colors_bwd.\n" +
                                               "   rm.\n" +
                                               "  else\n" +
                                               "   if s#0==4 cmyk2rgb. r[0] 100%,100%,100%,3\n" +
                                               "   else s. c,-4 cmyk2rgb.. a[-2,-1] c r[0] 100%,100%,100%,4\n" +
                                               "   fi\n" +
                                               "  fi\n" +
                                               "  if $z_convolve cut. 0,255 fi\n" +
                                               " fi\n" +
                                               "fi\n" +
                                               "f[0] \"begin(\n" +
                                               " const tw=\"$tile_w\";\n" +
                                               " const th=\"$tile_h\";\n" +
                                               ");\n" +
                                               "posx=int(x/tw);posy=int(y/th);" +
                                               "lerp(I(#-1,posx,posy,0),I(#-1,posx,posy,1),i0#-4);\"\n" +
                                               "r[0] $ow,$oh,100%,100%,0,0,.5,.5\n" +
                                               "k[0,$end_image_list_id]\n" +
                                               "um gmic_pdn_shape_circle,gmic_pdn_shape_cupid,gmic_pdn_shape_diamond,gmic_pdn_shape_polygon,gmic_pdn_shape_snowflake,gmic_pdn_shape_star,gmic_pdn_shape_heart,gmic_pdn_shape_australia,gmic_pdn_shape_barbedwire,gmic_pdn_shape_crosshair,gmic_pdn_shape_dragonfly,gmic_pdn_shape_flip,gmic_pdn_shape_gumleaf,gmic_pdn_shape_information,gmic_pdn_shape_kookaburra,gmic_pdn_shape_mail,gmic_pdn_shape_mapleleaf,gmic_pdn_shape_paintsplat,gmic_pdn_shape_paw,gmic_pdn_shape_phone,gmic_pdn_shape_rooster,gmic_pdn_shape_shopping_cart,gmic_pdn_multicut",
                                               color_space_id.ToString(CultureInfo.InvariantCulture),
                                               tile_id.ToString(CultureInfo.InvariantCulture),
                                               use_clipboard.ToString(CultureInfo.InvariantCulture),
                                               tile_w.ToString(CultureInfo.InvariantCulture),
                                               tile_h.ToString(CultureInfo.InvariantCulture),
                                               ratio.ToString(CultureInfo.InvariantCulture),
                                               rotation.ToString(CultureInfo.InvariantCulture),
                                               shape_mirror_axis_mode.ToString(CultureInfo.InvariantCulture),
                                               subpixel_process.ToString(CultureInfo.InvariantCulture),
                                               interp.ToString(CultureInfo.InvariantCulture),
                                               tile_bound_id.ToString(CultureInfo.InvariantCulture),
                                               preprocess_id.ToString(CultureInfo.InvariantCulture),
                                               ftmode.ToString(CultureInfo.InvariantCulture),
                                               pts.ToString(CultureInfo.InvariantCulture),
                                               thickness.ToString(CultureInfo.InvariantCulture),
                                               zconvf.ToString(CultureInfo.InvariantCulture),
                                               zconvb.ToString(CultureInfo.InvariantCulture));

                // Run the G'MIC command and allow it to receive cancellation info from Paint.NET.
                gmic.RunGmic(command, () => this.IsCancelRequested);

                if (gmic.Error != null)
                {
                    this.Services.GetService<IExceptionDialogService>().ShowErrorDialog(null, gmic.Error);
                }
                else if (!gmic.Canceled)
                {
                    Surface output = gmic.OutputImages?[0]?.Surface;

                    if (output != null)
                    {
                        // Copy the rendered G'MIC image to the destination surface,
                        // and restrict the copied portions to the user's selection.
                        dstArgs.Surface.CopySurface(output, this.EnvironmentParameters.GetSelectionAsPdnRegion());
                    }
                }
            }

            base.OnSetRenderInfo(newToken, dstArgs, srcArgs);
        }

        protected override void OnRender(Rectangle[] renderRects, int startIndex, int length)
        {
            // All work is performed in OnSetRenderInfo.
        }
    }
}

 

 

PluginSupportInfo.cs

Spoiler





////////////////////////////////////////////////////////////////////////
//
// This file is part of gmic-sharp-pdn-example, an example Paint.NET
// Effect plugin that uses the gmic-sharp-pdn library.
//
// Copyright (c) 2020 Nicholas Hayes
//
// This file is licensed under the MIT License.
// See LICENSE.txt for complete licensing and attribution information.
//
////////////////////////////////////////////////////////////////////////

using PaintDotNet;
using System;
using System.Reflection;

namespace GmicSharpPdnExample
{
    public class PluginSupportInfo : IPluginSupportInfo
    {
        private readonly Assembly assembly = typeof(PluginSupportInfo).Assembly;

        public string Author => "Filter: Reptorian - G'MIC-C#: Nicholas Hayes - G'MIC-QT Developer: David Tschumperlé";

        public string Copyright => this.assembly.GetCustomAttribute<AssemblyCopyrightAttribute>().Copyright;

        public string DisplayName => this.assembly.GetCustomAttribute<AssemblyProductAttribute>().Product;

        public Version Version => this.assembly.GetName().Version;

        public Uri WebsiteUri => new Uri("https://forums.getpaint.net/topic/116417-gmicsharppdn");
    }
}

 

 

EDIT: Moved Tiled Form to Stylize

EDIT: Added Z-Convolution Option

EDIT as of 12/17/2020: Replaced to color[0] with conditionals. Now filter is faster for B&W image. Doesn't really make much of a difference, but it's slightly faster.

EDIT: Icon added, and max dimension is 512.

EDIT as of 3/17/2021: Allow users to use either only width or height to define tile size.

 

 

Edited by Reptillian
Use C syntax highlighting in code blocks
  • Like 1
  • Upvote 2

G'MIC Filter Developer

Link to comment
Share on other sites

1 hour ago, Reptillian said:

public enum Cs_modeOptions

{

    Cs_modeOption1,

    Cs_modeOption2,

    Cs_modeOption3,

    Cs_modeOption4,

    Cs_modeOption5,

    Cs_modeOption6,

    Cs_modeOption7,

    Cs_modeOption8,

    Cs_modeOption9

}

 

 

You can name your enumeration items anything you want, so giving them meaning for names makes things easier in the long haul.

For example:

 

public enum Cs_modeOptions
{
  RGB,
  RYB,
  CMYK,
  HCY,
  HSI,
  HSL,
  HSV,
  LAB,
  LCH
}
Link to comment
Share on other sites

7 hours ago, Reptillian said:

Note: First of all, if you don't have the libGmicSharpNative.dll...

Thank you for your efforts @Reptillian, but your instructions are terribly complicated. I lost you at "Introducing the second g'mic-pdn plugin to exist...". Please remember that vast majority of us users do not understand the language you use in the Plugin Developers section.

Xkds4Lh.png

Link to comment
Share on other sites

6 hours ago, Djisves said:

Thank you for your efforts @Reptillian, but your instructions are terribly complicated. I lost you at "Introducing the second g'mic-pdn plugin to exist...". Please remember that vast majority of us users do not understand the language you use in the Plugin Developers section.

 

Ok, I simplified the installation instructions.

 

The first sentence can be ignored though it is only there as it is not the first gmic-pdn plugin. What null54 created was the first one.

G'MIC Filter Developer

Link to comment
Share on other sites

So, where would one look to see for the "sharp" folder? And how or why would one have had it already? Should it be there if one already has the first "g'mic-pdn plugin to exist"?

 

Does it have to be so complicated? Wouldn't it be easier to just put everything together in one zip? 

 

Xkds4Lh.png

Link to comment
Share on other sites

25 minutes ago, Djisves said:

So, where would one look to see for the "sharp" folder? And how or why would one have had it already? Should it be there if one already has the first "g'mic-pdn plugin to exist"?

 

Does it have to be so complicated? Wouldn't it be easier to just put everything together in one zip? 

 

They should look inside plugin installation folder.

 

On the second question, the dll should be there though the folder name inside gmicsharpnative on the two are different. That won't matter as I'm the only one that's going to be porting gmic scripts into pdn as I am a gmic filter developer with knowing c#. I'll build the water example if there is any interest from others so that one won't need dll in two different folders.

 

The dll file is 17000+ KB. Putting it together is not a option.

Edited by Reptillian
  • Upvote 1

G'MIC Filter Developer

Link to comment
Share on other sites

19 hours ago, Reptillian said:

and extract 'GmicSharpNative' into plugin installation folder.

 

What folder is this?  The 'gmic' folder under 'paint.net' or the 'Effects' folder?  And under what menu does the effect show up?

Link to comment
Share on other sites

On 12/6/2020 at 5:22 PM, Reptillian said:

I updated the GMICSharpNative installation via github website. I just hope it's clear.

 

I would suggest that you post your project to GitHub.

This would allow you to include the GmicSharpNative DLLs in the download, GitHub has a much larger file size limit than the forum.

 

My gmic-sharp-pdn-example has the binaries hosted on GitHub and includes the GmicSharpNative DLLs in the download.

Also, your GmicSharpNative build is missing the win-x86 DLL.

PdnSig.png

Plugin Pack | PSFilterPdn | Content Aware Fill | G'MICPaint Shop Pro Filetype | RAW Filetype | WebP Filetype

The small increase in performance you get coding in C++ over C# is hardly enough to offset the headache of coding in the C++ language. ~BoltBait

 

Link to comment
Share on other sites

@null54

 

I will do that when I finish converting the possible g'mic filters of my own. Not all of my own filters can be converted as I don't think it's easily possible to automate hiding UI element without resorting to WinForm, right?

 

That being said, the x86 DLL wasn't built and I assumed that it wasn't built because I'm not using a x86 pc. I should check that, and come back to you.

Edited by Reptillian

G'MIC Filter Developer

Link to comment
Share on other sites

Your plugin works as expected @Reptillian.  I put little hearts in the flower I used for the Fragment Blur+ plugin.

 

No need to post example.  Thanks!  🙂

 

  • Like 1
Link to comment
Share on other sites

1 hour ago, Reptillian said:

Not all of my own filters can be converted as I don't think it's easily possible to automate hiding UI element without resorting to WinForm, right?

 

Correct.

PdnSig.png

Plugin Pack | PSFilterPdn | Content Aware Fill | G'MICPaint Shop Pro Filetype | RAW Filetype | WebP Filetype

The small increase in performance you get coding in C++ over C# is hardly enough to offset the headache of coding in the C++ language. ~BoltBait

 

Link to comment
Share on other sites

  • Reptillian changed the title to Tiled Form - 12/16/2020

New feature! Z-Convolution. What Z-Convolution does is boost contrast within tile, and it does it by what the name say.

 

Also, better output with HSx and LCH color space. You won't get strange color within the middle of outside/inside shape areas.

Edited by Reptillian

G'MIC Filter Developer

Link to comment
Share on other sites

Same happened when I tried the Fragment Blur+. I reinstalled the GMICSharpNative and the Blur+ worked. Then tried this and both now crash. Not stable from where I stand.

 

Spoiler

Exception:

GmicSharp.GmicException: *** Error in ./*if/*if/ *** Command 'shared': [instance(800,600,1,1,000001d1226cf040,non-shared)] gmic<float>::get_shared_channels(): Invalid request of a shared-memory subset (0->799,0->599,0->0,0->2)
   at GmicSharp.Interop.GmicNative.HandleError(GmicStatus status, GmicErrorInfo errorInfo)
   at GmicSharp.Interop.GmicNative.RunGmic(SafeGmicImageList list, GmicOptions options)
   at GmicSharp.GmicRunner`1.GmicWorker(GmicWorkerArgs args)

Diagnostics:

Application                                          paint.net 4.2.14 (Final 4.214.7601.39231)
Build Date                                           Friday, October 23, 2020
Install type                                         Classic

Hardware accelerated rendering (GPU)                 True
Animations                                           True
DPI                                                  96 (1.00x scale)
Language                                             en-US

OS                                                   Windows 10 Pro x64 (10.0.19042.0) (0x30)
.NET Runtime                                         4.0.30319.42000
Physical Memory                                      32,680 MB

CPU                                                  Intel(R) Core(TM) i7-5960X CPU @ 3.00GHz
    Speed                                            ~3005 MHz
    Cores / Threads                                  8 / 16
    Features                                         SSE, SSE2, SSE3, SSSE3, SSE4_1, SSE4_2, AVX, AVX2

Pointer                                              Virtual HID
    Type                                             IntegratedPen
    Contacts                                         1

Pointer                                              Virtual HID
    Type                                             ExternalPen
    Contacts                                         1

Video Card                                           NVIDIA GeForce GTX 760
    Dedicated Video RAM                              4,052 MB
    Dedicated System RAM                             0 MB
    Shared System RAM                                16,340 MB
    Vendor ID                                        0x10DE
    Device ID                                        0x1187
    Subsystem ID                                     0x84A81043
    Revision                                         161
    LUID                                             0x00014A30
    Flags                                            AcgCompatible, SupportMonitoredFences, KeyedMutexConformance
    Graphics Preemption                              DmaBufferBoundary
    Compute Preemption                               DmaBufferBoundary
    Outputs                                          1
    Feature Level                                    Direct3D_11_0
    DXGI Formats                                     A8_UNorm, B8G8R8A8_UNorm, R16G16B16A16_UNorm, R16G16B16A16_Float, R32G32B32A32_Float
    Buffer Precision                                 UNorm8bpc, UNorm8bpcSrgb, UNorm16bpc, Float16bpc, Float32bpc

Video Card                                           Microsoft Basic Render Driver
    Dedicated Video RAM                              0 MB
    Dedicated System RAM                             0 MB
    Shared System RAM                                16,340 MB
    Vendor ID                                        0x1414
    Device ID                                        0x008C
    Subsystem ID                                     0x00000000
    Revision                                         0
    LUID                                             0x000154F6
    Flags                                            Software, AcgCompatible, SupportMonitoredFences, KeyedMutexConformance
    Graphics Preemption                              InstructionBoundary
    Compute Preemption                               InstructionBoundary
    Outputs                                          0
    Feature Level                                    Direct3D_12_1
    DXGI Formats                                     A8_UNorm, B8G8R8A8_UNorm, R16G16B16A16_UNorm, R16G16B16A16_Float, R32G32B32A32_Float
    Buffer Precision                                 UNorm8bpc, UNorm8bpcSrgb, UNorm16bpc, Float16bpc, Float32bpc

Managed assemblies                                   419
    mscorlib                                         mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
    PaintDotNet                                      PaintDotNet, Version=4.214.7601.39231, Culture=neutral, PublicKeyToken=null
    PaintDotNet.Core                                 PaintDotNet.Core, Version=4.214.7601.39231, Culture=neutral, PublicKeyToken=null
    PaintDotNet.Base                                 PaintDotNet.Base, Version=4.214.7601.39231, Culture=neutral, PublicKeyToken=null
    WindowsBase                                      WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
    System.Core                                      System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
    System                                           System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
    System.Drawing                                   System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    PresentationFramework                            PresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
    PresentationCore                                 PresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
    System.Windows.Forms                             System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
    PaintDotNet.SystemLayer                          PaintDotNet.SystemLayer, Version=4.214.7601.39231, Culture=neutral, PublicKeyToken=null
    PaintDotNet.Framework                            PaintDotNet.Framework, Version=4.214.7601.39231, Culture=neutral, PublicKeyToken=null
    PaintDotNet.Resources                            PaintDotNet.Resources, Version=4.214.7601.39231, Culture=neutral, PublicKeyToken=null
    PaintDotNet.Effects                              PaintDotNet.Effects, Version=4.214.7601.39231, Culture=neutral, PublicKeyToken=null
    PaintDotNet.Data                                 PaintDotNet.Data, Version=4.214.7601.39231, Culture=neutral, PublicKeyToken=null
    PaintDotNet.SystemLayer.Native.x64               PaintDotNet.SystemLayer.Native.x64, Version=4.214.7601.39231, Culture=neutral, PublicKeyToken=null
    System.Configuration                             System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    System.Xml                                       System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
    System.Xaml                                      System.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
    System.Runtime.CompilerServices.Unsafe           System.Runtime.CompilerServices.Unsafe, Version=4.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    ABRFileType                                      ABRFileType, Version=1.3.0.0, Culture=neutral, PublicKeyToken=null
    AnimGIF                                          AnimGIF, Version=2.4.4119.28305, Culture=neutral, PublicKeyToken=null
    Base64FileType                                   Base64FileType, Version=1.0.0.8, Culture=neutral, PublicKeyToken=null
    CSVFiletype                                      CSVFiletype, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
    FSHfiletype                                      FSHfiletype, Version=1.2.4.0, Culture=neutral, PublicKeyToken=null
    HisFileType                                      HisFileType, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
    IcoCur                                           IcoCur, Version=4.0.1.0, Culture=neutral, PublicKeyToken=null
    ImPS,EPS,AI.Open.FileType                        ImPS\,EPS\,AI.Open.FileType, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
    ImXcf.FileType                                   ImXcf.FileType, Version=1.4.0.95, Culture=neutral, PublicKeyToken=null
    Jpeg2000Filetype                                 Jpeg2000Filetype, Version=1.0.1.0, Culture=neutral, PublicKeyToken=null
    OptionBasedLibrary v0.6                          OptionBasedLibrary v0.6, Version=0.5.0.0, Culture=neutral, PublicKeyToken=null
    Accessibility                                    Accessibility, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    LowColor                                         LowColor, Version=1.0.4.0, Culture=neutral, PublicKeyToken=null
    OptimizedJPEG                                    OptimizedJPEG, Version=1.0.2.0, Culture=neutral, PublicKeyToken=null
    System.Buffers                                   System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
    OptiPngFileType                                  OptiPngFileType, Version=11.1.0.0, Culture=neutral, PublicKeyToken=null
    PaintShopProFiletype                             PaintShopProFiletype, Version=1.0.2.0, Culture=neutral, PublicKeyToken=null
    PatternFileType                                  PatternFileType, Version=1.0.5.0, Culture=neutral, PublicKeyToken=null
    System.Collections.Immutable                     System.Collections.Immutable, Version=1.2.5.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    PhotoShop                                        PhotoShop, Version=2.5.0.40665, Culture=neutral, PublicKeyToken=null
    RawFileType                                      RawFileType, Version=1.2.2.0, Culture=neutral, PublicKeyToken=null
    System.Memory                                    System.Memory, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
    TileImageFileType                                TileImageFileType, Version=1.0.0.1, Culture=neutral, PublicKeyToken=null
    WicDecoder                                       WicDecoder, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
    DdsFileTypePlus                                  DdsFileTypePlus, Version=1.10.7.0, Culture=neutral, PublicKeyToken=null
    WebPFileType                                     WebPFileType, Version=1.3.4.0, Culture=neutral, PublicKeyToken=null
    AvifFileType                                     AvifFileType, Version=1.1.4.0, Culture=neutral, PublicKeyToken=null
    AA's_Assistant                                   "AA's_Assistant", Version=1.1.4329.33034, Culture=neutral, PublicKeyToken=null
    Aardvark                                         Aardvark, Version=1.0.6.0, Culture=neutral, PublicKeyToken=null
    AdvancedRotate                                   AdvancedRotate, Version=1.0.3663.28009, Culture=neutral, PublicKeyToken=null
    AForge                                           AForge, Version=2.2.5.0, Culture=neutral, PublicKeyToken=c1db6ff4eaa06aeb
    AForge.Imaging                                   AForge.Imaging, Version=2.2.5.0, Culture=neutral, PublicKeyToken=ba8ddea9676ca48b
    Align Object                                     Align Object, Version=1.0.1.9, Culture=neutral, PublicKeyToken=null
    AlignPlugin                                      AlignPlugin, Version=1.5.1.0, Culture=neutral, PublicKeyToken=null
    Alpha2Gray                                       Alpha2Gray, Version=4.5.6832.21862, Culture=neutral, PublicKeyToken=null
    AlphaContrast                                    AlphaContrast, Version=1.0.3813.18307, Culture=neutral, PublicKeyToken=null
    AlphaMask                                        AlphaMask, Version=2.0.3574.41943, Culture=neutral, PublicKeyToken=null
    AlphaSpace                                       AlphaSpace, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
    AlphaThreshold                                   AlphaThreshold, Version=1.0.1.0, Culture=neutral, PublicKeyToken=null
    Alpha_to_0                                       Alpha_to_0, Version=1.0.4452.22746, Culture=neutral, PublicKeyToken=null
    Alpha_to_255                                     Alpha_to_255, Version=1.0.4452.22782, Culture=neutral, PublicKeyToken=null
    Animal                                           Animal, Version=2.2.5.20384, Culture=neutral, PublicKeyToken=null
    AnimationEffect                                  AnimationEffect, Version=1.0.0.96, Culture=neutral, PublicKeyToken=null
    Apply Texture                                    Apply Texture, Version=1.0.0.1, Culture=neutral, PublicKeyToken=null
    ArgusPaintNet.EdgeDetection                      ArgusPaintNet.EdgeDetection, Version=1.0.6834.34844, Culture=neutral, PublicKeyToken=null
    ArgusPaintNet.FFT                                ArgusPaintNet.FFT, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
    ArgusPaintNet.Shared                             ArgusPaintNet.Shared, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
    ArgusPDN.Barcode                                 ArgusPDN.Barcode, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
    ArgusPDN.EdgeDetect                              ArgusPDN.EdgeDetect, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
    ArgusPDN.FFTEffects                              ArgusPDN.FFTEffects, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
    ArgusPDN.Unblend                                 ArgusPDN.Unblend, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
    ArtyThing                                        ArtyThing, Version=1.0.5.0, Culture=neutral, PublicKeyToken=null
    AutoChrome                                       AutoChrome, Version=1.2.5.19669, Culture=neutral, PublicKeyToken=null
    AutoChromeNoise                                  AutoChromeNoise, Version=1.2.5.23331, Culture=neutral, PublicKeyToken=null
    BandWPlus                                        BandWPlus, Version=1.3.7359.317, Culture=neutral, PublicKeyToken=null
    Barcode                                          Barcode, Version=1.5.1.0, Culture=neutral, PublicKeyToken=null
    Bars                                             Bars, Version=1.2.5.23704, Culture=neutral, PublicKeyToken=null
    BBChart                                          BBChart, Version=1.0.7358.33924, Culture=neutral, PublicKeyToken=null
    System.Windows.Forms.DataVisualization           System.Windows.Forms.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
    BBOutlinedGradientText                           BBOutlinedGradientText, Version=4.6.7358.38713, Culture=neutral, PublicKeyToken=null
    Bezncurve                                        Bezncurve, Version=4.0.1.0, Culture=neutral, PublicKeyToken=null
    Bizarro-Negation                                 Bizarro-Negation, Version=1.0.4617.21771, Culture=neutral, PublicKeyToken=null
    BlackandAlpha+                                   BlackandAlpha+, Version=1.2.4329.272, Culture=neutral, PublicKeyToken=null
    BlendModesPlus                                   BlendModesPlus, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null
    BlurFill                                         BlurFill, Version=1.5.1.0, Culture=neutral, PublicKeyToken=null
    Borders N' Shapes                                "Borders N' Shapes", Version=4.0.4642.26476, Culture=neutral, PublicKeyToken=null
    Boutons                                          Boutons, Version=1.2.5.23747, Culture=neutral, PublicKeyToken=null
    boxfitting                                       boxfitting, Version=1.1.6164.32856, Culture=neutral, PublicKeyToken=null
    BrushFactory                                     BrushFactory, Version=1.3.0.41507, Culture=neutral, PublicKeyToken=null
    BrushFilter                                      BrushFilter, Version=1.3.0.13866, Culture=neutral, PublicKeyToken=null
    BulletinBoardTrim                                BulletinBoardTrim, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
    Burninate                                        Burninate, Version=4.6.7358.31797, Culture=neutral, PublicKeyToken=null
    Calendar                                         Calendar, Version=4.6.7358.32649, Culture=neutral, PublicKeyToken=null
    CalliColour                                      CalliColour, Version=1.0.1.0, Culture=neutral, PublicKeyToken=null
    CellMaker                                        CellMaker, Version=1.1.6139.29120, Culture=neutral, PublicKeyToken=null
    Centerlines 2                                    Centerlines 2, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
    CenterLines                                      CenterLines, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
    ChangeExtremeColors                              ChangeExtremeColors, Version=1.2.6.30674, Culture=neutral, PublicKeyToken=null
    ChessFEN                                         ChessFEN, Version=1.1.6139.31083, Culture=neutral, PublicKeyToken=null
    CircleText                                       CircleText, Version=1.4.4415.32488, Culture=neutral, PublicKeyToken=null
    CircularText                                     CircularText, Version=2.0.1.0, Culture=neutral, PublicKeyToken=null
    ClampedGaussianBlur                              ClampedGaussianBlur, Version=2.1.0.0, Culture=neutral, PublicKeyToken=null
    ClipDisplaceAA                                   ClipDisplaceAA, Version=1.2.4.0, Culture=neutral, PublicKeyToken=null
    ClipWarpNew                                      ClipWarpNew, Version=1.0.1.0, Culture=neutral, PublicKeyToken=null
    OptionBasedLibrary v0.7.9                        OptionBasedLibrary v0.7.9, Version=0.7.9.1561, Culture=neutral, PublicKeyToken=null
    Clock                                            Clock, Version=1.1.6245.30896, Culture=neutral, PublicKeyToken=null
    Cobweb                                           Cobweb, Version=1.0.1.0, Culture=neutral, PublicKeyToken=null
    CodeLab                                          CodeLab, Version=6.0.7481.36627, Culture=neutral, PublicKeyToken=null
    Color Match                                      Color Match, Version=4.0.4642.26532, Culture=neutral, PublicKeyToken=null
    coloraberation                                   coloraberation, Version=1.2.5.15647, Culture=neutral, PublicKeyToken=null
    ColorBalance                                     ColorBalance, Version=4.7.7401.17173, Culture=neutral, PublicKeyToken=null
    ColorHarmonies.Effect                            ColorHarmonies.Effect, Version=0.7.0.155, Culture=neutral, PublicKeyToken=null
    ColoRise                                         ColoRise, Version=1.0.6218.40504, Culture=neutral, PublicKeyToken=null
    ColorModulo                                      ColorModulo, Version=1.2.5.25136, Culture=neutral, PublicKeyToken=null
    ColorSketch                                      ColorSketch, Version=1.1.0.0, Culture=neutral, PublicKeyToken=null
    ColorZoomBlur                                    ColorZoomBlur, Version=1.2.5.17431, Culture=neutral, PublicKeyToken=null
    CombinedAdjustments                              CombinedAdjustments, Version=1.1.7358.40688, Culture=neutral, PublicKeyToken=null
    System.Xml.Linq                                  System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
    CompoGrids                                       CompoGrids, Version=1.0.2.0, Culture=neutral, PublicKeyToken=null
    System.Numerics                                  System.Numerics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
    Compotool                                        Compotool, Version=1.0.1.0, Culture=neutral, PublicKeyToken=null
    PresentationFramework-SystemXmlLinq              PresentationFramework-SystemXmlLinq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
    ComputeShaderEffects                             ComputeShaderEffects, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null
    ContentAwareFill                                 ContentAwareFill, Version=1.4.3.0, Culture=neutral, PublicKeyToken=null
    Contour                                          Contour, Version=1.0.1.0, Culture=neutral, PublicKeyToken=null
    SharpDX.Direct3D11                               SharpDX.Direct3D11, Version=2.5.0.0, Culture=neutral, PublicKeyToken=627a3d6d1956f55a
    CoordinatePlanePoints                            CoordinatePlanePoints, Version=1.1.6846.29158, Culture=neutral, PublicKeyToken=null
    CreativeTextPro                                  CreativeTextPro, Version=1.1.7358.34307, Culture=neutral, PublicKeyToken=null
    SharpDX                                          SharpDX, Version=2.5.0.0, Culture=neutral, PublicKeyToken=627a3d6d1956f55a
    Cuboids                                          Cuboids, Version=1.1.1.0, Culture=neutral, PublicKeyToken=null
    SharpDX.D3DCompiler                              SharpDX.D3DCompiler, Version=2.5.0.0, Culture=neutral, PublicKeyToken=627a3d6d1956f55a
    Curves+                                          Curves+, Version=4.0.6119.31044, Culture=neutral, PublicKeyToken=null
    CustomBrushesMini                                CustomBrushesMini, Version=2.2.5286.39584, Culture=neutral, PublicKeyToken=null
    DHShapeMaker                                     DHShapeMaker, Version=1.7.0.0, Culture=neutral, PublicKeyToken=null
    Diagonal Lines                                   Diagonal Lines, Version=1.0.4800.36619, Culture=neutral, PublicKeyToken=null
    Diffuse                                          Diffuse, Version=1.0.3254.27766, Culture=neutral, PublicKeyToken=null
    Dimensions                                       Dimensions, Version=1.3.6826.38472, Culture=neutral, PublicKeyToken=null
    Displacement                                     Displacement, Version=1.3.5.15773, Culture=neutral, PublicKeyToken=null
    DispMap                                          DispMap, Version=2.1.7197.13119, Culture=neutral, PublicKeyToken=null
    DistortingMirror                                 DistortingMirror, Version=1.2.5.15788, Culture=neutral, PublicKeyToken=null
    DistortThis                                      DistortThis, Version=2.9.0.0, Culture=neutral, PublicKeyToken=null
    Donut                                            Donut, Version=1.2.5.15739, Culture=neutral, PublicKeyToken=null
    dpyColorBalance                                  dpyColorBalance, Version=1.1.4330.37850, Culture=neutral, PublicKeyToken=null
    DragFrom                                         DragFrom, Version=1.1.0.0, Culture=neutral, PublicKeyToken=null
    Dream                                            Dream, Version=4.6.7358.35004, Culture=neutral, PublicKeyToken=null
    Droste                                           Droste, Version=1.1.0.0, Culture=neutral, PublicKeyToken=null
    Dryad                                            Dryad, Version=1.0.2.0, Culture=neutral, PublicKeyToken=null
    EarthsAndGreys                                   EarthsAndGreys, Version=1.0.1.0, Culture=neutral, PublicKeyToken=null
    EdgeExpander                                     EdgeExpander, Version=1.0.5863.38192, Culture=neutral, PublicKeyToken=null
    EdHarvey.Effects                                 EdHarvey.Effects, Version=4.0.5120.42730, Culture=neutral, PublicKeyToken=null
    EdHarvey.FastFx                                  EdHarvey.FastFx, Version=4.0.5120.35262, Culture=neutral, PublicKeyToken=null
    System.Design                                    System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
    EditableText                                     EditableText, Version=1.0.1.0, Culture=neutral, PublicKeyToken=null
    Emboss+                                          Emboss+, Version=1.2.0.0, Culture=neutral, PublicKeyToken=null
    EngraveEmboss                                    EngraveEmboss, Version=2.0.2.0, Culture=neutral, PublicKeyToken=null
    SBCommon                                         SBCommon, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null
    EOEffects                                        EOEffects, Version=1.10.16.12, Culture=neutral, PublicKeyToken=null
    IniFile                                          IniFile, Version=2.0.2.0, Culture=neutral, PublicKeyToken=null
    Equirectangular Diffuse Transform                Equirectangular Diffuse Transform, Version=1.0.7159.445, Culture=neutral, PublicKeyToken=null
    ExpandColor                                      ExpandColor, Version=1.2.5.15745, Culture=neutral, PublicKeyToken=null
    ExtendBorder                                     ExtendBorder, Version=1.3.0.0, Culture=neutral, PublicKeyToken=null
    Facet                                            Facet, Version=1.0.3.0, Culture=neutral, PublicKeyToken=null
    FibonacciFill                                    FibonacciFill, Version=1.1.6139.28851, Culture=neutral, PublicKeyToken=null
    FillFromClipboard                                FillFromClipboard, Version=4.7.7358.36519, Culture=neutral, PublicKeyToken=null
    FillFromFile                                     FillFromFile, Version=4.7.7358.36581, Culture=neutral, PublicKeyToken=null
    FillPalette                                      FillPalette, Version=1.2.5.32012, Culture=neutral, PublicKeyToken=null
    Film                                             Film, Version=4.0.4642.26607, Culture=neutral, PublicKeyToken=null
    FindEdges                                        FindEdges, Version=1.2.0.0, Culture=neutral, PublicKeyToken=null
    Flip                                             Flip, Version=4.6.7358.36953, Culture=neutral, PublicKeyToken=null
    Flourish                                         Flourish, Version=1.0.3.0, Culture=neutral, PublicKeyToken=null
    FloydSteinbergDithering                          FloydSteinbergDithering, Version=4.6.7358.37110, Culture=neutral, PublicKeyToken=null
    FractalAttractor                                 FractalAttractor, Version=1.3.5.27448, Culture=neutral, PublicKeyToken=null
    FractalFern                                      FractalFern, Version=1.2.0.28378, Culture=neutral, PublicKeyToken=null
    FractalTree                                      FractalTree, Version=1.2.0.38806, Culture=neutral, PublicKeyToken=null
    Frames                                           Frames, Version=1.2.5.27903, Culture=neutral, PublicKeyToken=null
    FurBlur                                          FurBlur, Version=1.0.1.0, Culture=neutral, PublicKeyToken=null
    GaussianBlurPlus                                 GaussianBlurPlus, Version=4.2.5691.27401, Culture=neutral, PublicKeyToken=null
    Gears                                            Gears, Version=1.0.2.0, Culture=neutral, PublicKeyToken=null
    Gen96Colors                                      Gen96Colors, Version=1.2.0.15608, Culture=neutral, PublicKeyToken=null
    GenTree                                          GenTree, Version=0.1.0.0, Culture=neutral, PublicKeyToken=null
    Gingham                                          Gingham, Version=1.1.0.0, Culture=neutral, PublicKeyToken=null
    __blur                                           __blur, Version=1.1.7212.26179, Culture=neutral, PublicKeyToken=null
    Gmic                                             Gmic, Version=2.9.4.0, Culture=neutral, PublicKeyToken=null
    GmicFragmentBlurPlus                             GmicFragmentBlurPlus, Version=0.2.0.0, Culture=neutral, PublicKeyToken=null
    Gossamer                                         Gossamer, Version=1.0.2.0, Culture=neutral, PublicKeyToken=null
    Gradient Bars                                    Gradient Bars, Version=4.0.5152.23084, Culture=neutral, PublicKeyToken=null
    Gradient Blocks                                  Gradient Blocks, Version=4.0.4642.26658, Culture=neutral, PublicKeyToken=null
    Gradient Grid                                    Gradient Grid, Version=4.0.6436.36068, Culture=neutral, PublicKeyToken=null
    Gradient Mapping                                 Gradient Mapping, Version=4.0.6107.40059, Culture=neutral, PublicKeyToken=null
    GradientBlur                                     GradientBlur, Version=1.2.5.28179, Culture=neutral, PublicKeyToken=null
    GradientsGalore                                  GradientsGalore, Version=1.0.5.0, Culture=neutral, PublicKeyToken=null
    GraphPaper                                       GraphPaper, Version=2.1.0.0, Culture=neutral, PublicKeyToken=null
    Gravity                                          Gravity, Version=1.2.5.29548, Culture=neutral, PublicKeyToken=null
    Gray2Alpha                                       Gray2Alpha, Version=4.5.6826.36897, Culture=neutral, PublicKeyToken=null
    GreenTintReduction                               GreenTintReduction, Version=1.0.6484.29238, Culture=neutral, PublicKeyToken=null
    Grid Warp                                        Grid Warp, Version=4.0.5873.25124, Culture=neutral, PublicKeyToken=null
    GridCheckerboard                                 GridCheckerboard, Version=4.5.6828.36789, Culture=neutral, PublicKeyToken=null
    GridGrad                                         GridGrad, Version=1.0.4172.25342, Culture=neutral, PublicKeyToken=null
    GridMaker                                        GridMaker, Version=5.2.5.29827, Culture=neutral, PublicKeyToken=null
    Grow                                             Grow, Version=1.0.7.0, Culture=neutral, PublicKeyToken=null
    Heightmap plugin v1                              Heightmap plugin v1, Version=1.3.4261.22267, Culture=neutral, PublicKeyToken=null
    Helix                                            Helix, Version=1.0.1.0, Culture=neutral, PublicKeyToken=null
    HexaGrid                                         HexaGrid, Version=4.0.0.39367, Culture=neutral, PublicKeyToken=null
    Highlight                                        Highlight, Version=1.0.1.0, Culture=neutral, PublicKeyToken=null
    HilbertCurve                                     HilbertCurve, Version=1.2.0.32151, Culture=neutral, PublicKeyToken=null
    HSVGradients                                     HSVGradients, Version=4.5.6832.41864, Culture=neutral, PublicKeyToken=null
    HueSatPlus                                       HueSatPlus, Version=4.6.7359.209, Culture=neutral, PublicKeyToken=null
    Image Modulo Toolkit.dll                         Image Modulo Toolkit.dll, Version=1.0.7587.35621, Culture=neutral, PublicKeyToken=null
    InsetBoxShadow                                   InsetBoxShadow, Version=1.3.0.0, Culture=neutral, PublicKeyToken=null
    __invert_anything                                __invert_anything, Version=1.0.7213.37760, Culture=neutral, PublicKeyToken=null
    iPhoneTabbarIconMaker                            iPhoneTabbarIconMaker, Version=1.0.3659.22550, Culture=neutral, PublicKeyToken=null
    IsometricCuboid                                  IsometricCuboid, Version=1.6.0.0, Culture=neutral, PublicKeyToken=null
    JigsawPuzzle                                     JigsawPuzzle, Version=2.3.0.0, Culture=neutral, PublicKeyToken=null
    Jitter                                           Jitter, Version=4.0.4642.26986, Culture=neutral, PublicKeyToken=null
    NoiseReduction                                   NoiseReduction, Version=1.0.3747.24002, Culture=neutral, PublicKeyToken=null
    JuliaPlus                                        JuliaPlus, Version=1.2.5.13821, Culture=neutral, PublicKeyToken=null
    KaleidoGen                                       KaleidoGen, Version=1.3.5.30504, Culture=neutral, PublicKeyToken=null
    Kaleidoscope                                     Kaleidoscope, Version=1.6.1.27167, Culture=neutral, PublicKeyToken=null
    kb_lens                                          kb_lens, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
    Kuwahara                                         Kuwahara, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
    Landscape                                        Landscape, Version=4.6.7358.37463, Culture=neutral, PublicKeyToken=null
    LensFlare                                        LensFlare, Version=2.2.12.35124, Culture=neutral, PublicKeyToken=null
    LevelHorizon                                     LevelHorizon, Version=4.6.7358.37589, Culture=neutral, PublicKeyToken=null
    LightRays                                        LightRays, Version=2.1.5.14276, Culture=neutral, PublicKeyToken=null
    Linocut_en                                       Linocut_en, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
    Liquify                                          Liquify, Version=4.0.5873.25113, Culture=neutral, PublicKeyToken=null
    ListOfPalettes                                   ListOfPalettes, Version=1.0.0.32564, Culture=neutral, PublicKeyToken=null
    Magnifier                                        Magnifier, Version=1.3.5.14308, Culture=neutral, PublicKeyToken=null
    Majority                                         Majority, Version=1.2.5.14328, Culture=neutral, PublicKeyToken=null
    mandala                                          mandala, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
    MarkupRenderer                                   MarkupRenderer, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
    MathNet.Iridium                                  MathNet.Iridium, Version=2007.3.8.35795, Culture=neutral, PublicKeyToken=null
    MeasureObject                                    MeasureObject, Version=1.5.0.0, Culture=neutral, PublicKeyToken=null
    MeasureSelection                                 MeasureSelection, Version=1.5.0.0, Culture=neutral, PublicKeyToken=null
    Melting                                          Melting, Version=1.3.6550.31783, Culture=neutral, PublicKeyToken=null
    MemeMaker                                        MemeMaker, Version=4.5.6828.38061, Culture=neutral, PublicKeyToken=null
    Metallize                                        Metallize, Version=1.2.4415.32969, Culture=neutral, PublicKeyToken=null
    MirrorRotate                                     MirrorRotate, Version=2.0.2.0, Culture=neutral, PublicKeyToken=null
    MirrorRotateMenu                                 MirrorRotateMenu, Version=2.0.2.0, Culture=neutral, PublicKeyToken=null
    Moire                                            Moire, Version=1.2.5.14350, Culture=neutral, PublicKeyToken=null
    MotionSharpen                                    MotionSharpen, Version=1.2.5.19059, Culture=neutral, PublicKeyToken=null
    MultiSpline                                      MultiSpline, Version=1.0.4.0, Culture=neutral, PublicKeyToken=null
    MultiThreshold                                   MultiThreshold, Version=1.1.4330.38982, Culture=neutral, PublicKeyToken=null
    Nebulous                                         Nebulous, Version=1.2.5.19527, Culture=neutral, PublicKeyToken=null
    NeonEdges_en                                     NeonEdges_en, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
    NewtonFractal                                    NewtonFractal, Version=2.2.5.19770, Culture=neutral, PublicKeyToken=null
    NoiseChoice                                      NoiseChoice, Version=1.0.1.0, Culture=neutral, PublicKeyToken=null
    NormalMapPlus                                    NormalMapPlus, Version=1.4.6422.43071, Culture=neutral, PublicKeyToken=null
    Object2Colour                                    Object2Colour, Version=1.0.1.0, Culture=neutral, PublicKeyToken=null
    ObjectBevel                                      ObjectBevel, Version=1.0.6.0, Culture=neutral, PublicKeyToken=null
    ObjectEdge                                       ObjectEdge, Version=1.0.1.0, Culture=neutral, PublicKeyToken=null
    ObjectTools                                      ObjectTools, Version=5.0.7502.21624, Culture=neutral, PublicKeyToken=null
    Oblique                                          Oblique, Version=1.2.5.15730, Culture=neutral, PublicKeyToken=null
    OilPaintingPlus                                  OilPaintingPlus, Version=4.6.7358.38406, Culture=neutral, PublicKeyToken=null
    Olden                                            Olden, Version=1.5.0.0, Culture=neutral, PublicKeyToken=null
    Feather                                          Feather, Version=2.3.4315.37038, Culture=neutral, PublicKeyToken=null
    OptionBasedLibrary v0.7.9                        OptionBasedLibrary v0.7.9, Version=0.7.9.1561, Culture=neutral, PublicKeyToken=null
    Organigram                                       Organigram, Version=1.3.6565.29874, Culture=neutral, PublicKeyToken=null
    Outline Object                                   Outline Object, Version=4.0.4642.26954, Culture=neutral, PublicKeyToken=null
    Overblur                                         Overblur, Version=1.0.1.0, Culture=neutral, PublicKeyToken=null
    Overliner                                        Overliner, Version=1.2.5.25545, Culture=neutral, PublicKeyToken=null
    PageCurl                                         PageCurl, Version=1.5.5.23162, Culture=neutral, PublicKeyToken=null
    Paneling                                         Paneling, Version=1.2.5.23448, Culture=neutral, PublicKeyToken=null
    ParallelLines.Effect                             ParallelLines.Effect, Version=1.6.0.575, Culture=neutral, PublicKeyToken=null
    PasteAlpha                                       PasteAlpha, Version=4.6.7358.38804, Culture=neutral, PublicKeyToken=null
    Pastel                                           Pastel, Version=4.6.7358.38877, Culture=neutral, PublicKeyToken=null
    PerlinTexture                                    PerlinTexture, Version=2.2.5.23710, Culture=neutral, PublicKeyToken=null
    Perspective                                      Perspective, Version=2.1.4415.36116, Culture=neutral, PublicKeyToken=null
    PhotoAdjustments                                 PhotoAdjustments, Version=4.6.7358.38979, Culture=neutral, PublicKeyToken=null
    PieChart                                         PieChart, Version=2.5.0.0, Culture=neutral, PublicKeyToken=null
    Pixelate+                                        Pixelate+, Version=4.0.4642.26940, Culture=neutral, PublicKeyToken=null
    Planetoid                                        Planetoid, Version=1.0.4.0, Culture=neutral, PublicKeyToken=null
    PlugInData                                       PlugInData, Version=1.3.0.2, Culture=neutral, PublicKeyToken=null
    pointwarp                                        pointwarp, Version=1.2.5709.42172, Culture=neutral, PublicKeyToken=null
    Polar                                            Polar, Version=1.2.5.24467, Culture=neutral, PublicKeyToken=null
    PolaroidFrame                                    PolaroidFrame, Version=1.2.6565.30489, Culture=neutral, PublicKeyToken=null
    a_polar_test                                     a_polar_test, Version=1.0.7188.40229, Culture=neutral, PublicKeyToken=null
    Polygon                                          Polygon, Version=4.5.6828.38648, Culture=neutral, PublicKeyToken=null
    Polygones                                        Polygones, Version=1.3.5.31866, Culture=neutral, PublicKeyToken=null
    PostageStamp                                     PostageStamp, Version=1.1.0.0, Culture=neutral, PublicKeyToken=null
    Poster                                           Poster, Version=1.0.2.0, Culture=neutral, PublicKeyToken=null
    PrinterPlus                                      PrinterPlus, Version=1.5.0.0, Culture=neutral, PublicKeyToken=null
    PrintIt.Effect                                   PrintIt.Effect, Version=0.9.0.1162, Culture=neutral, PublicKeyToken=null
    OptionBasedLibrary v0.7                          OptionBasedLibrary v0.7, Version=0.7.0.602, Culture=neutral, PublicKeyToken=null
    PSFilterPdn                                      PSFilterPdn, Version=1.0.7.1, Culture=neutral, PublicKeyToken=null
    Psychocolour                                     Psychocolour, Version=1.0.1.0, Culture=neutral, PublicKeyToken=null
    pxEexpansion                                     pxEexpansion, Version=1.0.4437.36287, Culture=neutral, PublicKeyToken=null
    QuadrilateralCorrection                          QuadrilateralCorrection, Version=1.2.0.0, Culture=neutral, PublicKeyToken=null
    Radialcolors                                     Radialcolors, Version=1.2.5.21672, Culture=neutral, PublicKeyToken=null
    RadiusFillCorners                                RadiusFillCorners, Version=1.6.0.0, Culture=neutral, PublicKeyToken=null
    RainbowTwist                                     RainbowTwist, Version=1.2.5.25218, Culture=neutral, PublicKeyToken=null
    Random Effect                                    Random Effect, Version=4.0.4642.26928, Culture=neutral, PublicKeyToken=null
    Random Shape Fill                                Random Shape Fill, Version=4.0.4642.26910, Culture=neutral, PublicKeyToken=null
    RandomLines                                      RandomLines, Version=1.2.5.25981, Culture=neutral, PublicKeyToken=null
    RandomMaze1                                      RandomMaze1, Version=1.2.5.26409, Culture=neutral, PublicKeyToken=null
    RandomMaze2                                      RandomMaze2, Version=1.2.5.26820, Culture=neutral, PublicKeyToken=null
    RecolorGray                                      RecolorGray, Version=1.2.5.27251, Culture=neutral, PublicKeyToken=null
    RecolourChoice                                   RecolourChoice, Version=1.0.1.0, Culture=neutral, PublicKeyToken=null
    RegularNoise                                     RegularNoise, Version=1.2.5.29080, Culture=neutral, PublicKeyToken=null
    RemoveDust                                       RemoveDust, Version=4.5.6826.37862, Culture=neutral, PublicKeyToken=null
    __killblack                                      __killblack, Version=1.0.7212.28737, Culture=neutral, PublicKeyToken=null
    RenderSphereHeightMap                            RenderSphereHeightMap, Version=1.0.6145.37460, Culture=neutral, PublicKeyToken=null
    ReverseColors                                    ReverseColors, Version=1.2.5.29336, Culture=neutral, PublicKeyToken=null
    RGB_Remap4                                       RGB_Remap4, Version=1.0.3538.24311, Culture=neutral, PublicKeyToken=null
    Rosaces                                          Rosaces, Version=1.2.5.29635, Culture=neutral, PublicKeyToken=null
    RotateText                                       RotateText, Version=1.1.4415.32628, Culture=neutral, PublicKeyToken=null
    RotateTextSUI                                    RotateTextSUI, Version=1.1.4415.32713, Culture=neutral, PublicKeyToken=null
    Rotate_Zoom+                                     Rotate_Zoom+, Version=1.11.5237.17779, Culture=neutral, PublicKeyToken=null
    RubberStamp                                      RubberStamp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
    Ruler                                            Ruler, Version=1.0.6846.37263, Culture=neutral, PublicKeyToken=null
    SaveForWebRIOT                                   SaveForWebRIOT, Version=1.0.7.0, Culture=neutral, PublicKeyToken=null
    Scintillate                                      Scintillate, Version=1.0.1.0, Culture=neutral, PublicKeyToken=null
    ScreenPixel                                      ScreenPixel, Version=1.1.6846.39497, Culture=neutral, PublicKeyToken=null
    Scribble                                         Scribble, Version=1.0.1.0, Culture=neutral, PublicKeyToken=null
    ScriptLab                                        ScriptLab, Version=4.0.6107.18914, Culture=neutral, PublicKeyToken=null
    SeamCarving                                      SeamCarving, Version=4.6.7358.39596, Culture=neutral, PublicKeyToken=null
    SeamlessTextureMaker                             SeamlessTextureMaker, Version=1.2.5.29984, Culture=neutral, PublicKeyToken=null
    Selection2Clear                                  Selection2Clear, Version=1.0.1.0, Culture=neutral, PublicKeyToken=null
    SelectionObscure                                 SelectionObscure, Version=1.1.4602.34476, Culture=neutral, PublicKeyToken=null
    SelectionTools                                   SelectionTools, Version=5.0.7502.22140, Culture=neutral, PublicKeyToken=null
    Shape3D                                          Shape3D, Version=1.2.6.3, Culture=neutral, PublicKeyToken=null
    Shapes                                           Shapes, Version=1.6.5.30197, Culture=neutral, PublicKeyToken=null
    SharpDX.DXGI                                     SharpDX.DXGI, Version=2.5.0.0, Culture=neutral, PublicKeyToken=627a3d6d1956f55a
    Sierpinski                                       Sierpinski, Version=2.2.5.30414, Culture=neutral, PublicKeyToken=null
    SinWaves                                         SinWaves, Version=1.2.5.30582, Culture=neutral, PublicKeyToken=null
    Skew                                             Skew, Version=1.0.7638.38725, Culture=neutral, PublicKeyToken=null
    SlightEdgeBoost                                  SlightEdgeBoost, Version=1.5.7467.22643, Culture=neutral, PublicKeyToken=null
    Slinky                                           Slinky, Version=1.0.1.0, Culture=neutral, PublicKeyToken=null
    Smooth                                           Smooth, Version=2.0.2.0, Culture=neutral, PublicKeyToken=null
    SmoothNoise                                      SmoothNoise, Version=1.0.0.28227, Culture=neutral, PublicKeyToken=null
    Smudge                                           Smudge, Version=4.0.5873.25097, Culture=neutral, PublicKeyToken=null
    SoftProofing                                     SoftProofing, Version=1.1.0.1, Culture=neutral, PublicKeyToken=null
    SpacedTextPlugin                                 SpacedTextPlugin, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null
    Sparkles                                         Sparkles, Version=1.2.5.12788, Culture=neutral, PublicKeyToken=null
    Specular                                         Specular, Version=1.0.3254.27778, Culture=neutral, PublicKeyToken=null
    SpeechBubble                                     SpeechBubble, Version=2.1.4445.42029, Culture=neutral, PublicKeyToken=null
    Spiral                                           Spiral, Version=1.2.5.12809, Culture=neutral, PublicKeyToken=null
    SpiralText                                       SpiralText, Version=1.4.4415.32775, Culture=neutral, PublicKeyToken=null
    SpiroGraph                                       SpiroGraph, Version=1.2.5.12972, Culture=neutral, PublicKeyToken=null
    SpiroShapes                                      SpiroShapes, Version=2.2.5.16659, Culture=neutral, PublicKeyToken=null
    Splashes                                         Splashes, Version=1.2.5.13040, Culture=neutral, PublicKeyToken=null
    Splatter                                         Splatter, Version=4.0.5873.25083, Culture=neutral, PublicKeyToken=null
    SpokedWheel                                      SpokedWheel, Version=1.1.6846.37336, Culture=neutral, PublicKeyToken=null
    SpotCenter                                       SpotCenter, Version=1.2.0.17265, Culture=neutral, PublicKeyToken=null
    Squirkle                                         Squirkle, Version=1.0.1.0, Culture=neutral, PublicKeyToken=null
    SquirkleWarp                                     SquirkleWarp, Version=1.0.1.0, Culture=neutral, PublicKeyToken=null
    StarGlow                                         StarGlow, Version=1.3.5.17930, Culture=neutral, PublicKeyToken=null
    Stars                                            Stars, Version=2.0.0.25701, Culture=neutral, PublicKeyToken=null
    Stickman                                         Stickman, Version=1.2.2.30005, Culture=neutral, PublicKeyToken=null
    Stitch                                           Stitch, Version=4.0.4642.26808, Culture=neutral, PublicKeyToken=null
    StringAndPin                                     StringAndPin, Version=1.0.1.0, Culture=neutral, PublicKeyToken=null
    SubLCD                                           SubLCD, Version=1.2.1.0, Culture=neutral, PublicKeyToken=null
    Table                                            Table, Version=1.1.5847.38905, Culture=neutral, PublicKeyToken=null
    Tartan                                           Tartan, Version=1.5.1.0, Culture=neutral, PublicKeyToken=null
    Tattersall                                       Tattersall, Version=1.1.0.0, Culture=neutral, PublicKeyToken=null
    Temperature                                      Temperature, Version=4.6.7358.39746, Culture=neutral, PublicKeyToken=null
    TextPlus                                         TextPlus, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
    TextPro                                          TextPro, Version=1.0.6711.26540, Culture=neutral, PublicKeyToken=null
    TextureMerger                                    TextureMerger, Version=1.1.6159.40169, Culture=neutral, PublicKeyToken=null
    TextureShader                                    TextureShader, Version=2.3.0.0, Culture=neutral, PublicKeyToken=null
    TextureSmoother                                  TextureSmoother, Version=1.0.6096.31689, Culture=neutral, PublicKeyToken=null
    TextWindow                                       TextWindow, Version=1.4.0.0, Culture=neutral, PublicKeyToken=null
    TGAngle                                          TGAngle, Version=1.0.1.0, Culture=neutral, PublicKeyToken=null
    TGMagnitude                                      TGMagnitude, Version=1.0.2.0, Culture=neutral, PublicKeyToken=null
    ThatOtherApp                                     ThatOtherApp, Version=2.2.0.0, Culture=neutral, PublicKeyToken=null
    Thorn Fractal.dll                                Thorn Fractal.dll, Version=1.0.7611.40689, Culture=neutral, PublicKeyToken=null
    TiledFormGmicPDN                                 TiledFormGmicPDN, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
    Tiles                                            Tiles, Version=1.2.5.13094, Culture=neutral, PublicKeyToken=null
    TileWorld                                        TileWorld, Version=1.0.2.30273, Culture=neutral, PublicKeyToken=null
    TOON                                             TOON, Version=1.0.7446.7819, Culture=neutral, PublicKeyToken=null
    Tournesol                                        Tournesol, Version=1.2.5.13128, Culture=neutral, PublicKeyToken=null
    Trail                                            Trail, Version=4.0.4642.26791, Culture=neutral, PublicKeyToken=null
    Transparency                                     Transparency, Version=4.6.7358.39871, Culture=neutral, PublicKeyToken=null
    TreeGen                                          TreeGen, Version=1.1.0.0, Culture=neutral, PublicKeyToken=null
    TRsAlphaCutter                                   TRsAlphaCutter, Version=3.0.4.0, Culture=neutral, PublicKeyToken=null
    TRsDodgeBurn                                     TRsDodgeBurn, Version=1.4.0.33503, Culture=neutral, PublicKeyToken=null
    TRsDodgeBurn.resources                           TRsDodgeBurn.resources, Version=1.3.26.12436, Culture=zh-CN, PublicKeyToken=null
    TRsDoodleMatic                                   TRsDoodleMatic, Version=1.4.5045.31846, Culture=neutral, PublicKeyToken=null
    TRsFilaments                                     TRsFilaments, Version=1.0.15.11399, Culture=neutral, PublicKeyToken=null
    TRsMonolithic                                    TRsMonolithic, Version=1.0.6.24412, Culture=neutral, PublicKeyToken=null
    TRsMorpher                                       TRsMorpher, Version=1.1.10.8959, Culture=neutral, PublicKeyToken=null
    TRsSplineMaster                                  TRsSplineMaster, Version=1.4.2.18310, Culture=neutral, PublicKeyToken=null
    TRsStrobeMotion                                  TRsStrobeMotion, Version=1.2.4962.30523, Culture=neutral, PublicKeyToken=null
    TubeOblique                                      TubeOblique, Version=1.2.0.0, Culture=neutral, PublicKeyToken=null
    TurbulentCircles                                 TurbulentCircles, Version=1.1.0.0, Culture=neutral, PublicKeyToken=null
    TurbulentLines                                   TurbulentLines, Version=1.1.0.0, Culture=neutral, PublicKeyToken=null
    TwainablePlus                                    TwainablePlus, Version=1.0.0.2, Culture=neutral, PublicKeyToken=null
    Twist                                            Twist, Version=4.0.5873.25056, Culture=neutral, PublicKeyToken=null
    TwistZ                                           TwistZ, Version=1.2.5.13350, Culture=neutral, PublicKeyToken=null
    TwoPointPerspective                              TwoPointPerspective, Version=1.6.0.0, Culture=neutral, PublicKeyToken=null
    TwoToneThreshold                                 TwoToneThreshold, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
    UnselectedRectangleKeeper                        UnselectedRectangleKeeper, Version=1.0.5669.36271, Culture=neutral, PublicKeyToken=null
    Vandermotten.PaintDotNetEffects.Blurs            Vandermotten.PaintDotNetEffects.Blurs, Version=3.8.0.0, Culture=neutral, PublicKeyToken=null
    Vandermotten.PaintDotNetEffects.ColorAccent      Vandermotten.PaintDotNetEffects.ColorAccent, Version=3.8.0.0, Culture=neutral, PublicKeyToken=null
    Vandermotten.PaintDotNetEffects                  Vandermotten.PaintDotNetEffects, Version=3.8.0.0, Culture=neutral, PublicKeyToken=null
    Vandermotten.PaintDotNetEffects.DropShadow       Vandermotten.PaintDotNetEffects.DropShadow, Version=3.8.0.0, Culture=neutral, PublicKeyToken=null
    Vandermotten.PaintDotNetEffects.Duotones         Vandermotten.PaintDotNetEffects.Duotones, Version=3.8.0.0, Culture=neutral, PublicKeyToken=null
    Vandermotten.PaintDotNetEffects.FadeEdge         Vandermotten.PaintDotNetEffects.FadeEdge, Version=3.8.0.0, Culture=neutral, PublicKeyToken=null
    Vandermotten.PaintDotNetEffects.Gradient         Vandermotten.PaintDotNetEffects.Gradient, Version=3.8.0.0, Culture=neutral, PublicKeyToken=null
    Vandermotten.PaintDotNetEffects.Grid             Vandermotten.PaintDotNetEffects.Grid, Version=3.8.0.0, Culture=neutral, PublicKeyToken=null
    Vandermotten.PaintDotNetEffects.Monochromes      Vandermotten.PaintDotNetEffects.Monochromes, Version=3.8.0.0, Culture=neutral, PublicKeyToken=null
    Vandermotten.PaintDotNetEffects.ObjectAlign      Vandermotten.PaintDotNetEffects.ObjectAlign, Version=3.8.0.0, Culture=neutral, PublicKeyToken=null
    Vanishing Trails                                 Vanishing Trails, Version=1.0.7514.41368, Culture=neutral, PublicKeyToken=null
    VanishPoint                                      VanishPoint, Version=1.0.3.0, Culture=neutral, PublicKeyToken=null
    Varicose2                                        Varicose2, Version=2.1.1.42085, Culture=neutral, PublicKeyToken=null
    Vibrato                                          Vibrato, Version=2.0.5.13530, Culture=neutral, PublicKeyToken=null
    Vignette1                                        Vignette1, Version=1.0.3538.14367, Culture=neutral, PublicKeyToken=null
    VignettePlus                                     VignettePlus, Version=4.6.7358.40027, Culture=neutral, PublicKeyToken=null
    Volutes                                          Volutes, Version=1.3.5.13753, Culture=neutral, PublicKeyToken=null
    WaterReflection                                  WaterReflection, Version=1.2.5.15754, Culture=neutral, PublicKeyToken=null
    Waves                                            Waves, Version=1.2.5.14072, Culture=neutral, PublicKeyToken=null
    WaveText                                         WaveText, Version=1.2.4415.32811, Culture=neutral, PublicKeyToken=null
    WaveTextSUI                                      WaveTextSUI, Version=1.2.4415.33440, Culture=neutral, PublicKeyToken=null
    WetFloor                                         WetFloor, Version=1.2.5.14166, Culture=neutral, PublicKeyToken=null
    WhichSymbolRedux                                 WhichSymbolRedux, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
    XYCoords                                         XYCoords, Version=1.2.5.19506, Culture=neutral, PublicKeyToken=null
    ZoomBlurDeluxe                                   ZoomBlurDeluxe, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
    K4os.Compression.LZ4                             K4os.Compression.LZ4, Version=1.1.11.0, Culture=neutral, PublicKeyToken=2186fa9121ef231d

Native modules                                       129
    PaintDotNet.exe                                  C:\Program Files\paint.net\PaintDotNet.exe, version=4.214.7601.39231
    ntdll.dll                                        C:\WINDOWS\SYSTEM32\ntdll.dll, version=10.0.19041.662 (WinBuild.160101.0800)
    MSCOREE.DLL                                      C:\WINDOWS\SYSTEM32\MSCOREE.DLL, version=10.0.19041.1 (WinBuild.160101.0800)
    KERNEL32.dll                                     C:\WINDOWS\System32\KERNEL32.dll, version=10.0.19041.662 (WinBuild.160101.0800)
    KERNELBASE.dll                                   C:\WINDOWS\System32\KERNELBASE.dll, version=10.0.19041.662 (WinBuild.160101.0800)
    ADVAPI32.dll                                     C:\WINDOWS\System32\ADVAPI32.dll, version=10.0.19041.1 (WinBuild.160101.0800)
    msvcrt.dll                                       C:\WINDOWS\System32\msvcrt.dll, version=7.0.19041.546 (WinBuild.160101.0800)
    sechost.dll                                      C:\WINDOWS\System32\sechost.dll, version=10.0.19041.1 (WinBuild.160101.0800)
    RPCRT4.dll                                       C:\WINDOWS\System32\RPCRT4.dll, version=10.0.19041.1 (WinBuild.160101.0800)
    mscoreei.dll                                     C:\Windows\Microsoft.NET\Framework64\v4.0.30319\mscoreei.dll, version=4.8.4180.0 built by: NET48REL1LAST_B
    SHLWAPI.dll                                      C:\WINDOWS\System32\SHLWAPI.dll, version=10.0.19041.1 (WinBuild.160101.0800)
    kernel.appcore.dll                               C:\WINDOWS\SYSTEM32\kernel.appcore.dll, version=10.0.19041.546 (WinBuild.160101.0800)
    VERSION.dll                                      C:\WINDOWS\SYSTEM32\VERSION.dll, version=10.0.19041.546 (WinBuild.160101.0800)
    clr.dll                                          C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll, version=4.8.4300.0 built by: NET48REL1LAST_C
    USER32.dll                                       C:\WINDOWS\System32\USER32.dll, version=10.0.19041.1 (WinBuild.160101.0800)
    win32u.dll                                       C:\WINDOWS\System32\win32u.dll, version=10.0.19041.662 (WinBuild.160101.0800)
    GDI32.dll                                        C:\WINDOWS\System32\GDI32.dll, version=10.0.19041.685 (WinBuild.160101.0800)
    VCRUNTIME140_CLR0400.dll                         C:\WINDOWS\SYSTEM32\VCRUNTIME140_CLR0400.dll, version=14.10.25028.0 built by: VCTOOLSD15RTM
    ucrtbase_clr0400.dll                             C:\WINDOWS\SYSTEM32\ucrtbase_clr0400.dll, version=14.10.25028.0 built by: VCTOOLSD15RTM
    gdi32full.dll                                    C:\WINDOWS\System32\gdi32full.dll, version=10.0.19041.685 (WinBuild.160101.0800)
    msvcp_win.dll                                    C:\WINDOWS\System32\msvcp_win.dll, version=10.0.19041.546 (WinBuild.160101.0800)
    ucrtbase.dll                                     C:\WINDOWS\System32\ucrtbase.dll, version=10.0.19041.546 (WinBuild.160101.0800)
    IMM32.DLL                                        C:\WINDOWS\System32\IMM32.DLL, version=10.0.19041.546 (WinBuild.160101.0800)
    psapi.dll                                        C:\WINDOWS\System32\psapi.dll, version=10.0.19041.546 (WinBuild.160101.0800)
    mscorlib.ni.dll                                  C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\mscorlib\ed4777cae83e1fc9087ac3dc82cf23ab\mscorlib.ni.dll, version=4.8.4300.0 built by: NET48REL1LAST_C
    ole32.dll                                        C:\WINDOWS\System32\ole32.dll, version=10.0.19041.1 (WinBuild.160101.0800)
    combase.dll                                      C:\WINDOWS\System32\combase.dll, version=10.0.19041.1 (WinBuild.160101.0800)
    bcryptPrimitives.dll                             C:\WINDOWS\System32\bcryptPrimitives.dll, version=10.0.19041.662 (WinBuild.160101.0800)
    uxtheme.dll                                      C:\WINDOWS\system32\uxtheme.dll, version=10.0.19041.1 (WinBuild.160101.0800)
    CRYPTSP.dll                                      C:\WINDOWS\SYSTEM32\CRYPTSP.dll, version=10.0.19041.546 (WinBuild.160101.0800)
    rsaenh.dll                                       C:\WINDOWS\system32\rsaenh.dll, version=10.0.19041.1 (WinBuild.160101.0800)
    bcrypt.dll                                       C:\WINDOWS\System32\bcrypt.dll, version=10.0.19041.1 (WinBuild.160101.0800)
    CRYPTBASE.dll                                    C:\WINDOWS\SYSTEM32\CRYPTBASE.dll, version=10.0.19041.546 (WinBuild.160101.0800)
    System.ni.dll                                    C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\System\5dd302cc18514670950e7f3fbebddb06\System.ni.dll, version=4.8.4300.0 built by: NET48REL1LAST_C
    System.Core.ni.dll                               C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\System.Core\ce57a19cdc83705ba9aeec743bfdc62f\System.Core.ni.dll, version=4.8.4300.0 built by: NET48REL1LAST_C
    WindowsBase.ni.dll                               C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\WindowsBase\fec1e81e95fa9e5ed8f8290632af79de\WindowsBase.ni.dll, version=4.8.4300.0 built by: NET48REL1LAST_C
    System.Drawing.ni.dll                            C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\System.Drawing\f4b470d059025978bbe597afc6e60f7d\System.Drawing.ni.dll, version=4.8.4084.0 built by: NET48REL1
    PresentationCore.ni.dll                          C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\PresentationCore\66450953713be99c7f54d828732cb56c\PresentationCore.ni.dll, version=4.8.4300.0 built by: NET48REL1LAST_C
    PresentationFramework.ni.dll                     C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\Presentatio5ae0f00f#\95a1a26b05917f415f1754568270dea5\PresentationFramework.ni.dll, version=4.8.4300.0
    PaintDotNet.Base.ni.dll                          C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\PaintDotNet.Base\fc25066683c7361eac95d8f777ecedc2\PaintDotNet.Base.ni.dll, version=4.214.7601.39231
    System.Windows.Forms.ni.dll                      C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\System.Windows.Forms\9c043df0c5a3f7b28f75021b55a8152a\System.Windows.Forms.ni.dll, version=4.8.4270.0 built by: NET48REL1LAST_C
    PaintDotNet.SystemLayer.ni.dll                   C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\PaintDotNet500b2e4f#\d8bd916e4e9bb26991cfb223b06f5195\PaintDotNet.SystemLayer.ni.dll, version=4.214.7601.39231
    PaintDotNet.Core.ni.dll                          C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\PaintDotNet.Core\c886cffd4910aaf7f9a1a5d6ceaa3d91\PaintDotNet.Core.ni.dll, version=4.214.7601.39231
    PaintDotNet.Resources.ni.dll                     C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\PaintDotNet26779e70#\83137b48fff0b69a36db10d37a951c61\PaintDotNet.Resources.ni.dll, version=4.214.7601.39231
    PaintDotNet.Framework.ni.dll                     C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\PaintDotNet7afaaa15#\4c57c688ebbc9d8155d72f6a9fe07f83\PaintDotNet.Framework.ni.dll, version=4.214.7601.39231
    PaintDotNet.Data.ni.dll                          C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\PaintDotNet.Data\18e056f040e873f6dbc3543ebeb9ddc1\PaintDotNet.Data.ni.dll, version=4.214.7601.39231
    PaintDotNet.Effects.ni.dll                       C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\PaintDotNet.Effects\9d130cae3bf94f393d1273d1fa4bb73b\PaintDotNet.Effects.ni.dll, version=4.214.7601.39231
    PaintDotNet.ni.exe                               C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\PaintDotNet\1d443f490e133a5d9232c313e4c78eff\PaintDotNet.ni.exe, version=4.214.7601.39231
    dwrite.dll                                       C:\WINDOWS\SYSTEM32\dwrite.dll, version=10.0.19041.1 (WinBuild.160101.0800)
    wpfgfx_v0400.dll                                 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\WPF\wpfgfx_v0400.dll, version=4.8.4300.0 built by: NET48REL1LAST_C
    OLEAUT32.dll                                     C:\WINDOWS\System32\OLEAUT32.dll, version=10.0.19041.546 (WinBuild.160101.0800)
    MSVCP140_CLR0400.dll                             C:\WINDOWS\SYSTEM32\MSVCP140_CLR0400.dll, version=14.10.25028.0 built by: VCTOOLSD15RTM
    PresentationNative_v0400.dll                     C:\Windows\Microsoft.NET\Framework64\v4.0.30319\WPF\PresentationNative_v0400.dll, version=4.8.4300.0 built by: NET48REL1LAST_C
    shell32.dll                                      C:\WINDOWS\System32\shell32.dll, version=10.0.19041.329 (WinBuild.160101.0800)
    windows.storage.dll                              C:\WINDOWS\SYSTEM32\windows.storage.dll, version=10.0.19041.1 (WinBuild.160101.0800)
    Wldp.dll                                         C:\WINDOWS\SYSTEM32\Wldp.dll, version=10.0.19041.1 (WinBuild.160101.0800)
    SHCORE.dll                                       C:\WINDOWS\System32\SHCORE.dll, version=10.0.19041.1 (WinBuild.160101.0800)
    vcruntime140.dll                                 C:\Program Files\paint.net\Native\X64\vcruntime140.dll, version=14.27.29016.0 built by: vcwrkspc
    vcruntime140_1.dll                               C:\Program Files\paint.net\Native\X64\vcruntime140_1.dll, version=14.27.29016.0 built by: vcwrkspc
    msvcp140.dll                                     C:\Program Files\paint.net\Native\X64\msvcp140.dll, version=14.27.29016.0 built by: vcwrkspc
    msvcp140_1.dll                                   C:\Program Files\paint.net\Native\X64\msvcp140_1.dll, version=14.27.29016.0 built by: vcwrkspc
    msvcp140_2.dll                                   C:\Program Files\paint.net\Native\X64\msvcp140_2.dll, version=14.27.29016.0 built by: vcwrkspc
    msvcp140_codecvt_ids.dll                         C:\Program Files\paint.net\Native\X64\msvcp140_codecvt_ids.dll, version=14.27.29016.0 built by: vcwrkspc
    vcomp140.dll                                     C:\Program Files\paint.net\Native\X64\vcomp140.dll, version=14.27.29016.0 built by: vcwrkspc
    PaintDotNet.SystemLayer.Native.x64.ni.dll        C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\PaintDotNetc8826574#\b7f1508efefbbdfbbc686b0ba0d18cc7\PaintDotNet.SystemLayer.Native.x64.ni.dll, version=4.214.7601.39231
    PaintDotNet.SystemLayer.Native.x64.dll           C:\Program Files\paint.net\PaintDotNet.SystemLayer.Native.x64.dll, version=4.214.7601.39231
    PROPSYS.dll                                      C:\WINDOWS\SYSTEM32\PROPSYS.dll, version=7.0.19041.1 (WinBuild.160101.0800)
    gdiplus.dll                                      C:\WINDOWS\WinSxS\amd64_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.19041.685_none_faeca4db76168538\gdiplus.dll, version=10.0.19041.685 (WinBuild.160101.0800)
    WindowsCodecs.dll                                C:\WINDOWS\SYSTEM32\WindowsCodecs.dll, version=10.0.19041.546 (WinBuild.160101.0800)
    clbcatq.dll                                      C:\WINDOWS\System32\clbcatq.dll, version=2001.12.10941.16384 (WinBuild.160101.0800)
    msasn1.dll                                       C:\WINDOWS\SYSTEM32\msasn1.dll, version=10.0.19041.546 (WinBuild.160101.0800)
    cryptnet.dll                                     C:\WINDOWS\SYSTEM32\cryptnet.dll, version=10.0.19041.546 (WinBuild.160101.0800)
    CRYPT32.dll                                      C:\WINDOWS\System32\CRYPT32.dll, version=10.0.19041.1 (WinBuild.160101.0800)
    System.Configuration.ni.dll                      C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\System.Configuration\9962fc89eda46413a40be6ede9d433fe\System.Configuration.ni.dll, version=4.8.4190.0 built by: NET48REL1LAST_B
    System.Xml.ni.dll                                C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\System.Xml\131a023309990432765d7a97ec31d6a7\System.Xml.ni.dll, version=4.8.4084.0 built by: NET48REL1
    profapi.dll                                      C:\WINDOWS\SYSTEM32\profapi.dll, version=10.0.19041.546 (WinBuild.160101.0800)
    clrjit.dll                                       C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clrjit.dll, version=4.8.4300.0 built by: NET48REL1LAST_C
    System.Xaml.ni.dll                               C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\System.Xaml\0ef8bfd0f4664190a99df56720291069\System.Xaml.ni.dll, version=4.8.4300.0 built by: NET48REL1LAST_C
    dxgi.dll                                         C:\WINDOWS\SYSTEM32\dxgi.dll, version=10.0.19041.546 (WinBuild.160101.0800)
    MSCTF.dll                                        C:\WINDOWS\System32\MSCTF.dll, version=10.0.19041.1 (WinBuild.160101.0800)
    System.Runtime.CompilerServices.Unsafe.ni.dll    C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\System.Runtea61dfd5#\be3e121258d7e87a2074ef5bdac61ac8\System.Runtime.CompilerServices.Unsafe.ni.dll, version=4.700.20.12001
    UIAnimation.dll                                  C:\WINDOWS\System32\UIAnimation.dll, version=10.0.19041.546 (WinBuild.160101.0800)
    comctl32.dll                                     C:\WINDOWS\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.19041.488_none_ca04af081b815d21\comctl32.dll, version=6.10 (WinBuild.160101.0800)
    TextShaping.dll                                  C:\WINDOWS\System32\TextShaping.dll, version=
    d2d1.dll                                         C:\WINDOWS\SYSTEM32\d2d1.dll, version=10.0.19041.1 (WinBuild.160101.0800)
    wtsapi32.dll                                     C:\WINDOWS\SYSTEM32\wtsapi32.dll, version=10.0.19041.546 (WinBuild.160101.0800)
    WINSTA.dll                                       C:\WINDOWS\SYSTEM32\WINSTA.dll, version=10.0.19041.546 (WinBuild.160101.0800)
    d3d11.dll                                        C:\WINDOWS\SYSTEM32\d3d11.dll, version=10.0.19041.546 (WinBuild.160101.0800)
    D3D10Warp.dll                                    C:\WINDOWS\SYSTEM32\D3D10Warp.dll, version=10.0.19041.546 (WinBuild.160101.0800)
    dxcore.dll                                       C:\WINDOWS\SYSTEM32\dxcore.dll, version=10.0.19041.546 (WinBuild.160101.0800)
    cfgmgr32.dll                                     C:\WINDOWS\System32\cfgmgr32.dll, version=10.0.19041.546 (WinBuild.160101.0800)
    dwmapi.dll                                       C:\WINDOWS\SYSTEM32\dwmapi.dll, version=10.0.19041.1 (WinBuild.160101.0800)
    dataexchange.dll                                 C:\WINDOWS\system32\dataexchange.dll, version=10.0.19041.546 (WinBuild.160101.0800)
    dcomp.dll                                        C:\WINDOWS\system32\dcomp.dll, version=10.0.19041.662 (WinBuild.160101.0800)
    twinapi.appcore.dll                              C:\WINDOWS\system32\twinapi.appcore.dll, version=10.0.19041.1 (WinBuild.160101.0800)
    textinputframework.dll                           C:\WINDOWS\SYSTEM32\textinputframework.dll, version=10.0.19041.662 (WinBuild.160101.0800)
    CoreUIComponents.dll                             C:\WINDOWS\System32\CoreUIComponents.dll, version=10.0.19041.546
    CoreMessaging.dll                                C:\WINDOWS\System32\CoreMessaging.dll, version=10.0.19041.610
    WS2_32.dll                                       C:\WINDOWS\System32\WS2_32.dll, version=10.0.19041.1 (WinBuild.160101.0800)
    ntmarta.dll                                      C:\WINDOWS\SYSTEM32\ntmarta.dll, version=10.0.19041.1 (WinBuild.160101.0800)
    wintypes.dll                                     C:\WINDOWS\SYSTEM32\wintypes.dll, version=10.0.19041.1 (WinBuild.160101.0800)
    Oleacc.dll                                       C:\WINDOWS\system32\Oleacc.dll, version=7.2.19041.546 (WinBuild.160101.0800)
    diasymreader.dll                                 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\diasymreader.dll, version=14.8.4084.0 built by: NET48REL1
    Accessibility.ni.dll                             C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\Accessibility\b2d9fb5fc2521b994e41d2480280f81c\Accessibility.ni.dll, version=4.8.4084.0 built by: NET48REL1
    powrprof.dll                                     C:\WINDOWS\SYSTEM32\powrprof.dll, version=10.0.19041.1 (WinBuild.160101.0800)
    UMPDC.dll                                        C:\WINDOWS\SYSTEM32\UMPDC.dll, version=
    System.Buffers.ni.dll                            C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\System.Buffers\d861d77f413fed84924c0db1977ced0f\System.Buffers.ni.dll, version=4.6.28619.01
    winmm.dll                                        C:\WINDOWS\SYSTEM32\winmm.dll, version=10.0.19041.1 (WinBuild.160101.0800)
    System.Collections.Immutable.ni.dll              C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\System.Coll4a4f96a7#\a9cc475c11172c8824cd0d18e0b678cd\System.Collections.Immutable.ni.dll, version=4.700.20.21406
    System.Memory.ni.dll                             C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\System.Memory\6e9a8622af0dffa0e9f9737798ecefea\System.Memory.ni.dll, version=4.6.28619.01
    mfplat.dll                                       C:\WINDOWS\SYSTEM32\mfplat.dll, version=10.0.19041.1 (WinBuild.160101.0800)
    RTWorkQ.DLL                                      C:\WINDOWS\SYSTEM32\RTWorkQ.DLL, version=10.0.19041.1 (WinBuild.160101.0800)
    CompPkgSup.DLL                                   C:\WINDOWS\SYSTEM32\CompPkgSup.DLL, version=10.0.19041.546 (WinBuild.160101.0800)
    Windows.StateRepositoryPS.dll                    C:\Windows\System32\Windows.StateRepositoryPS.dll, version=10.0.19041.546 (WinBuild.160101.0800)
    nvldumdx.dll                                     C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_2635d5c616c804dc\nvldumdx.dll, version=27.21.14.6089
    WINTRUST.DLL                                     C:\WINDOWS\System32\WINTRUST.DLL, version=10.0.19041.662 (WinBuild.160101.0800)
    imagehlp.dll                                     C:\WINDOWS\System32\imagehlp.dll, version=10.0.19041.546 (WinBuild.160101.0800)
    nvwgf2umx.dll                                    C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_2635d5c616c804dc\nvwgf2umx.dll, version=27.21.14.6089
    nvspcap64.dll                                    C:\WINDOWS\system32\nvspcap64.dll, version=3.20.5.70
    explorerframe.dll                                C:\WINDOWS\system32\explorerframe.dll, version=10.0.19041.1 (WinBuild.160101.0800)
    System.Windows.Forms.DataVisualization.ni.dll    C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\System.Wind0de890be#\b36fd4078cb35dc14cf6dc0334a884fe\System.Windows.Forms.DataVisualization.ni.dll, version=4.8.4200.0
    System.Xml.Linq.ni.dll                           C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\System.Xml.Linq\c50385f4daee7f53822e428afb22a07b\System.Xml.Linq.ni.dll, version=4.8.4084.0 built by: NET48REL1
    System.Numerics.ni.dll                           C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\System.Numerics\92acbf2f668c06e51b7ae29b448197a3\System.Numerics.ni.dll, version=4.8.4084.0 built by: NET48REL1
    System.Design.ni.dll                             C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\System.Design\6a241a48ffe03ae5328e41f854331234\System.Design.ni.dll, version=4.8.4084.0 built by: NET48REL1
    libGmicSharpNative.dll                           C:\Program Files\paint.net\Effects\GmicSharpNative\win-x64\libGmicSharpNative.dll, version=0.7.0.0
    SetupApi.dll                                     C:\WINDOWS\System32\SetupApi.dll, version=10.0.19041.1 (WinBuild.160101.0800)
    DEVOBJ.dll                                       C:\WINDOWS\SYSTEM32\DEVOBJ.dll, version=10.0.19041.546 (WinBuild.160101.0800)
    K4os.Compression.LZ4.ni.dll                      C:\WINDOWS\assembly\NativeImages_v4.0.30319_64\K4os.Compression.LZ4\0a43166728ad63c02b98ef535d81fcdf\K4os.Compression.LZ4.ni.dll, version=1.1.11
    XmlLite.dll                                      C:\WINDOWS\SYSTEM32\XmlLite.dll, version=10.0.19041.546 (WinBuild.160101.0800)

 

 

Edited by toe_head2001
Placed log into a Spoiler element
Link to comment
Share on other sites

12 minutes ago, Reptillian said:

You didn't need to reinstall gmicsharpnative. Also, both crash at beginning, right or is there a condition in which this plugin crash? Please provide more details on how these crash so I can replicate.

Just run the plugin on a blank project. Error. Then paint something... error again. Seems the blur+ working again now. The blur+ did fail until I reinstalled the gmicsharpnative.

PDN-TileCrash.zip

  • Like 1
Link to comment
Share on other sites

41 minutes ago, Panchdara said:

Just run the plugin on a blank project. Error. Then paint something... error again. Seems the blur+ working again now. The blur+ did fail until I reinstalled the gmicsharpnative.

PDN-TileCrash.zip 1.71 MB · 0 downloads

Thank you, I was able to replicate it. A fix will come soon. I discovered other bugs.

 

-----

 

EDIT:

 

@Panchdara It's done. Download again, and see if everything works well.

 

As for @null54 I am finding myself having issues with empty images as you can see here. I had to add tvv=0 repeat s#0 done if !$tvv return fi to fix my g'mic filter. Is there a remedy that you have for this?

 

Edited by Reptillian

G'MIC Filter Developer

Link to comment
Share on other sites

Hi @Reptillian  The Z-Convolution % is just great!  🙂   Details are clear and crisp.

 

tiledformgmic_01.png

 

However, I'm experiencing a crash on a very detailed gray scale image that I made in Gmic-QT with Thorn Fractal.  It's the background in the above image.

When I applied a Color Tint on it, it worked just fine. Instead of posting my crash log, download this image and try it yourself. Then apply color and it should work.

 

tiledformgmic_02.jpg

 

Let me know what you find out.  Thanks for all your hard work!  😊 👏

 

 

 

Link to comment
Share on other sites

2 hours ago, Reptillian said:

Is there a remedy that you have for this?

 

No, I do not.

PdnSig.png

Plugin Pack | PSFilterPdn | Content Aware Fill | G'MICPaint Shop Pro Filetype | RAW Filetype | WebP Filetype

The small increase in performance you get coding in C++ over C# is hardly enough to offset the headache of coding in the C++ language. ~BoltBait

 

Link to comment
Share on other sites

12 hours ago, Reptillian said:

Thank you, I was able to replicate it. A fix will come soon. I discovered other bugs.

 

-----

 

EDIT:

 

@Panchdara It's done. Download again, and see if everything works well.

 

 

Many thanks. Looking much-a-mo-bedda. Thank you for your time, effort and patience.

Best & have a Great Christmas and may 2021 be better than 2020! And that goes for everybody in the PDN community.

Hugh

  • Like 1
Link to comment
Share on other sites

  • Reptillian changed the title to Tiled Form - 12/17/2020
  • Reptillian changed the title to Tiled Form - 3/17/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.

 Share

×
×
  • Create New...