Jump to content

BoltBait

Administrator
  • Posts

    15,728
  • Joined

  • Last visited

  • Days Won

    405

Everything posted by BoltBait

  1. Post a screenshot of the Drop Shadow UI and I'll see what I can do. EDIT: Nice pic, BTW! EDITEDIT: I only use IndirectUI controls, so no tabs.
  2. Have you tried the program InkScape? If you need to do a lot of this type of manipulation, you really can't beat a good vector editor.
  3. Well, the prototype has a blur slider. So, play with it, then let me know. Honestly, no matter how big the image, a blur of 1 or 2 makes it look perfect. I'm leaning toward just taking it out in order to simplify the UI.
  4. Just a quick question... Should the blur level be settable? If so, what range sounds good? I always set it to 1 or 2 no matter what size I'm making the shadow. Can you guys please play with the blur slider and let me know if there is any value in keeping it or should I just hard code a value like 1 or 2? I'm all for keeping plugins as simple as possible--that is, with the fewest controls that still allow you to get the job done. I definitely see value in the blur function. I'm just not sure if there is value in letting the user set it.
  5. OK, fine. I'll put a colorwheel control in there and an option to keep only the shadow and see if I can finish it up tonight.
  6. Please understand that the rendering from my plugin and whatever manual steps you are doing will never match exactly. That's just the nature of simplifying manual steps to the point of being automated. The question you have to ask yourself... "Is the plugin's output GOOD ENOUGH to use it instead of going through the manual steps?" It would be possible. But, honestly, is there really any value to it? It would make the UI much bigger and would anyone ever use it?
  7. No. But, you can try this version... <Beta version snipped> Still needs some polish, but much closer now.
  8. Due to the complexity of that plugin, I seriously doubt that will ever happen. Please remember, this was just a very quick "proof of concept" that I wrote in about 10 minutes. Of course, I'll make the final one "Inner shadow". It needs quite a bit of polish before it would be ready for publishing.
  9. OK, try this plugin: <early beta snipped> Effects > Object > Inner Bevel Remember, this works on "objects", so your text will need to be on a transparent layer with no active selection. As this is a beta, keep to the center of the canvas. Let me know how you like it and if you think it is worth polishing up for a real release.
  10. Use Black as the first color and the text color as the second color. Or, try the plugin posted in the next message down...
  11. That would be a problem for the plugin developer, not Rick. I think the OP was talking about the four satellite windows: tools, palette, history, and layers. If you're having problems with paint.net remembering those locations, I'm sure Rick will look into it.
  12. Reading your title, before clicking in, I assumed you were looking for this: http://forums.getpaint.net/index.php?/topic/25637-
  13. First, be sure you're using the latest version of the cursor filetype plugin: http://forums.getpaint.net/index.php?/topic/927- Second, if you're still having trouble with it, post on that thread so the author will see it and try to fix the problem for you. I'm going to close this thread because of this: http://forums.getpaint.net/index.php?/topic/9349-
  14. If paint.net is being run as an Administrator (under elevated privileges), Windows won't allow drag-and-drop. It is possible that paint.net is running as Administrator without your knowledge if you just installed it and checked the "run paint.net" box at the end of the installer.
  15. I just tried all the links and they're working fine for me. Must be something on your end.
  16. You need to read this page in regards to working with the Clouds effect: http://boltbait.com/pdn/CodeLab/help/tutorial3.php And, remember, while in CodeLab itself, the effect is still multi-threaded. Single threading only works on effects that are compiled to a dll file. EDIT: I don't see any obvious errors. I tested clouds in a compiled dll with single-threading on and it worked fine. Perhaps the error is in your calculations.
  17. MJW, the key difference is in this code that CodeLab generates: public nothingEffectPlugin() : base(StaticName, StaticIcon, null, EffectFlags.Configurable | EffectFlags.SingleThreaded) { } As you can see the constructor is specified with the SingleThreaded effect flag. In this case, paint.net will not break up the selection into separate work units. But, instead will pass the entire selection to the render function in a single block and therefore only use one thread. The main benefit of this is that the render is computed in an orderly way (from top to bottom, from left to right).You can see a good example here: http://forums.getpaint.net/index.php?/topic/29428- CodeLab does not make any other changes than just specifying the effect flag. The single-threaded rendering is supported by paint.net itself. This option should not be used unless absolutely necessary as the built effect will run slower than an effect built the normal way.
  18. By ignoring plugins, you're missing out on a HUGE part of what makes paint.net so awesome.
  19. This is due to the current spam attack. Sorry for the inconvenience.
  20. The IndirectUI double slider control has an issue where the up arrow can not increase beyond certain values. For example, if you create a control min: 0, max: 15, default: 8, step: .01, you can not press the control's up arrow beyond 8.03 when starting from the default position of 8. Here is a CodeLab script to demonstrate the issue: #region UICode double Amount1 = 8; // [0,15] Control Description #endregion void Render(Surface dst, Surface src, Rectangle rect) { ColorBgra CurrentPixel; for (int y = rect.Top; y < rect.Bottom; y++) { if (IsCancelRequested) return; for (int x = rect.Left; x < rect.Right; x++) { CurrentPixel = src[x,y]; dst[x,y] = CurrentPixel; } } } CodeLab then builds the following code from that script: Hidden Content: using System; using System.Linq; using System.Text; using System.Windows; using System.Drawing; using Microsoft.Win32; using System.Reflection; using System.Drawing.Text; using System.Windows.Forms; using System.Collections.Generic; using System.Runtime.InteropServices; using System.Runtime.CompilerServices; using PaintDotNet; using PaintDotNet.Effects; using PaintDotNet.AppModel; using PaintDotNet.IndirectUI; using PaintDotNet.Collections; using PaintDotNet.PropertySystem; [assembly: AssemblyTitle("DoubleSlider Plugin for Paint.NET")] [assembly: AssemblyDescription("DoubleSlider selected pixels")] [assembly: AssemblyConfiguration("doubleslider")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("DoubleSlider")] [assembly: AssemblyCopyright("Copyright © ")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] [assembly: ComVisible(false)] [assembly: AssemblyVersion("1.0.*")] namespace DoubleSliderEffect { public class PluginSupportInfo : IPluginSupportInfo { public string Author { get { return ((AssemblyCopyrightAttribute)base.GetType().Assembly.GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false)[0]).Copyright; } } public string Copyright { get { return ((AssemblyDescriptionAttribute)base.GetType().Assembly.GetCustomAttributes(typeof(AssemblyDescriptionAttribute), false)[0]).Description; } } public string DisplayName { get { return ((AssemblyProductAttribute)base.GetType().Assembly.GetCustomAttributes(typeof(AssemblyProductAttribute), false)[0]).Product; } } public Version Version { get { return base.GetType().Assembly.GetName().Version; } } public Uri WebsiteUri { get { return new Uri("http://www.getpaint.net/redirect/plugins.html"); } } } [PluginSupportInfo(typeof(PluginSupportInfo), DisplayName = "DoubleSlider")] public class DoubleSliderEffectPlugin : PropertyBasedEffect { public static string StaticName { get { return "DoubleSlider"; } } public static Image StaticIcon { get { return null; } } public static string SubmenuName { get { return null; // Programmer's chosen default } } public DoubleSliderEffectPlugin() : base(StaticName, StaticIcon, SubmenuName, EffectFlags.Configurable) { } public enum PropertyNames { Amount1 } protected override PropertyCollection OnCreatePropertyCollection() { List<Property> props = new List<Property>(); props.Add(new DoubleProperty(PropertyNames.Amount1, 8, 0, 15)); return new PropertyCollection(props); } protected override ControlInfo OnCreateConfigUI(PropertyCollection props) { ControlInfo configUI = CreateDefaultConfigUI(props); configUI.SetPropertyControlValue(PropertyNames.Amount1, ControlInfoPropertyNames.DisplayName, "Control Description"); configUI.SetPropertyControlValue(PropertyNames.Amount1, ControlInfoPropertyNames.SliderLargeChange, 0.25); configUI.SetPropertyControlValue(PropertyNames.Amount1, ControlInfoPropertyNames.SliderSmallChange, 0.05); configUI.SetPropertyControlValue(PropertyNames.Amount1, ControlInfoPropertyNames.UpDownIncrement, 0.01); return configUI; } protected override void OnSetRenderInfo(PropertyBasedEffectConfigToken newToken, RenderArgs dstArgs, RenderArgs srcArgs) { this.Amount1 = newToken.GetProperty<DoubleProperty>(PropertyNames.Amount1).Value; base.OnSetRenderInfo(newToken, dstArgs, srcArgs); } protected override unsafe void OnRender(Rectangle[] rois, int startIndex, int length) { if (length == 0) return; for (int i = startIndex; i < startIndex + length; ++i) { Render(DstArgs.Surface,SrcArgs.Surface,rois[i]); } } #region User Entered Code #region UICode double Amount1 = 8; // [0,15] Control Description #endregion void Render(Surface dst, Surface src, Rectangle rect) { ColorBgra CurrentPixel; for (int y = rect.Top; y < rect.Bottom; y++) { if (IsCancelRequested) return; for (int x = rect.Left; x < rect.Right; x++) { CurrentPixel = src[x,y]; dst[x,y] = CurrentPixel; } } } #endregion } } To view the issue, you must build the script to a DLL and install it. When you run the effect from within paint.net, try pressing the up arrow on the control. It will stop at 8.03. At this point, if you type in 8.04 tab, it will reset back to 8.03. Or, if you type 8.05 tab, then press the up arrow again it will stop at 8.28. It appears that some values simply are not allowed in the control. Using the down arrow jumps over these "broken" values (8.04, 8.29, etc.) but does not stop the UI. EDIT: Interestingly, the built-in Effects > Noise > Add Noise effect does not show this issue with the coverage slider. I'm able to enter 8.04 and 8.29 directly into the control. HOWEVER, the built-in effect Effects > Render > Julia Fractal DOES show the problem with the Factor slider. You can not enter 8.04 or 8.29 into the amount. It appears that the maximum amount of the slider makes a difference. I think this shows that it is NOT a CodeLab issue. This issue was originally reported by user TechnoRobbo.
  21. This is a Paint.NET bug. I'll file it for Rick. EDIT: Issue filed under http://forums.getpaint.net/index.php?/topic/31387-
  22. First invert the color of the text so that it is orange. Next, Adjustments > Black and White Finally, Adjustments > Brightness / Contrast (set contrast all the way to the right then adjust the brightness until you see white text.)
  23. Red, that's true of plugins written with CodeLab: The first colorwheel defaults to the primary color and the second defaults to the secondary color. This can be overridden in code, of course. For example, my bevel plugin defaults to White and Black. But, I agree with the OP. I'd like to see some enhancements to the built-in color wheel control like the ability to enter hex values, hsv values, and perhaps the alpha level of the color.
×
×
  • Create New...