-
Posts
11,364 -
Joined
-
Last visited
-
Days Won
44
Everything posted by pyrochild
-
Update! ScriptLab and Curves+ are now on GitHub! More to come as time allows. Some changes in ScriptLab: - Improve horrible UI decisions - give me a break, I was in high school. - Fix hang when close button clicked while rendering - Individual progress bars for each effect - Change multiple step's colors at once - Fix: sometimes selection highlight would remain in script after an item was no longer selected - More robust script-saving
-
Curves+ is now on GitHub! Go contribute! https://github.com/bsneeze/pdn-curvesplus
-
ScriptLab is now open source and on GitHub! https://github.com/bsneeze/pdn-scriptlab
-
Hello friends, I have for you a minor update to fix some major bugs in ScriptLab: - Fixed: Clicking in the Available list when there are no results for the search term would crash ScriptLab - Fixed: Clicking Cancel while rendering would sometimes hang Paint.NET Hooray
-
Hello friends, I have for you a minor update to fix some major bugs: - Fixed: Clicking in the Available list when there are no results for the search term would crash the plugin - Fixed: Clicking Cancel while rendering would sometimes hang Paint.NET Hooray
-
How to access all effects programatically
pyrochild replied to NinthDesertDude's topic in Plugin Developer's Central
ScriptLab gathers effect types this way: public static IEnumerable<Type> GatherEffects() { List<Assembly> assemblies = new List<Assembly>(); List<Type> ec = new List<Type>(); // PaintDotNet.Effects.dll assemblies.Add(Assembly.GetAssembly(typeof(Effect))); // TARGETDIR\Effects\*.dll string homeDir = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location); string effectsDir = Path.Combine(homeDir, "Effects"); bool dirExists; try { dirExists = Directory.Exists(effectsDir); } catch { dirExists = false; } if (dirExists) { string fileSpec = "*.dll"; string[] filePaths = Directory.GetFiles(effectsDir, fileSpec); foreach (string filePath in filePaths) { Assembly pluginAssembly = null; try { pluginAssembly = Assembly.LoadFrom(filePath); assemblies.Add(pluginAssembly); } catch { } } } foreach (Assembly a in assemblies) { try { foreach (Type t in a.GetTypes()) { if (t.IsSubclassOf(typeof(Effect)) && !t.IsAbstract && !t.IsObsolete(false)) { ec.Add(t); } } } catch { } } return ec; } I think this code was copied from Paint.NET's source code back when the source was available (and modified since), so it's not accessing PdN's internal EffectsCollection code.After instantiating an Effect from the Type collection, you need to check for effect.Category == EffectCategory.DoNotDisplay. There's an effect with that category that you can display - the RotateZoomEffect. It's marked as DoNotDisplay so it can be manually placed in the Layers menu instead of Effects. If you want to render an effect multithreaded like Paint.NET does you'll need to check for effect.CheckForEffectFlags(EffectFlags.SingleRenderCall) and effect.CheckForEffectFlags(EffectFlags.SingleThreaded). Or just always render on 1 thread but performance will suffer compared to running an effect natively. -
What OS and mail client? The send feedback thing does just use a mailto: link, but I don't think Chrome does anything with it. Try changing you default mail client. Also, nearest neighbor is the correct name for that scaling algorithm: https://en.wikipedia.org/wiki/Image_scaling#Scaling_methods
-
Update: - Fixed color window showing alpha = 0 when a color is opaque black
-
Update: - Fixed color window showing alpha = 0 when a color is opaque black
-
Update: - Fixed color window showing alpha = 0 when a color is opaque black
-
Update: - Fixed color window showing alpha = 0 when a color is opaque black
-
Update: - Fixed color window showing alpha = 0 when a color is opaque black
-
Updated - Works with Levels effect - Can script another ScriptLab instance. I don't know why you would want to do this, but now you can. Scriptception! - Fixed progress bar not filling for certain effects like Red Eye Removal (effects using SingleRenderCall) - Changes begin rendering as soon as the currently rendering effect can be cancelled instead of waiting for the whole script to render before starting over - Fixed some crashes when moving/changing effects while rendering - Cancel now cancels as soon as possible instead of waiting for the whole script to finish (or hanging Paint.NET...) - OK no longer rerenders the whole script - Fixed some load errors while loading scripts w/ missing effects - Load/save errors now show detailed exceptions for easier troubleshooting - Fixed color window showing alpha = 0 when a color is opaque black - Misc performance improvements
-
Updated: ScriptLab - Works with Levels effect - Can script another ScriptLab instance. I don't know why you would want to do this, but now you can. Scriptception! - Fixed progress bar not filling for certain effects like Red Eye Removal (effects using SingleRenderCall) - Changes begin rendering as soon as the currently rendering effect can be cancelled instead of waiting for the whole script to render before starting over - Fixed some crashes when moving/changing effects while rendering - Cancel now cancels as soon as possible instead of waiting for the whole script to finish (or hanging Paint.NET...) - OK no longer rerenders the whole script - Fixed some load errors while loading scripts w/ missing effects - Load/save errors now show detailed exceptions for easier troubleshooting - Fixed color window showing alpha = 0 when a color is opaque black - Misc performance improvements Gradient Mapping, Grid Warp, Liquify, Smudge, Splatter, and Twist - Fixed color window showing alpha = 0 when a color is opaque black
-
We're trying out a new kind of CAPTCHA to hopefully reduce the amount of spam.
-
Transparency Gone when saving .png files. Fix?
pyrochild replied to chinadragondoll's topic in Troubleshooting & Bug Reports
Make sure you're saving with Bit Depth as Auto-detect, 32-bit or 8bit in the PNG save configuration dialog. 24 -bit does not save the alpha (transparency) channel. -
1 - default script location and a list in the UI - Good idea 2 - dyanmic previews - Also a good idea. I think there was some reason it can't do this, but it's been a long time! I'll take a look. 3 - saving scripts to paint.net Effects menu - This is probably not gonna happen. 4 - effect properties relative to image properties - I don't think this would be possible without a major rewrite. 5 - open source - Maybe someday
-
This reproduces for me. I'll look into it. Did you try downloading the current version of the plugin? What's the error? What are you doing when it happens?
-
Error installing on Windows 8.1
pyrochild replied to Dynamik1's topic in Troubleshooting & Bug Reports
Sounds like your download is corrupted. Clear your browser cache and try a fresh download. -
Offering commercial plugins allowed?
pyrochild replied to semhoze's topic in Paint.NET Discussion and Questions
It's allowed, just be prepared for whining