Jump to content

MJW

Members
  • Posts

    2,853
  • Joined

  • Last visited

  • Days Won

    70

Everything posted by MJW

  1. I don't know if it would be of any use, but I have a plugin called the Mismatch Eraser that can erase pixels in the image that match those in the clipboard.
  2. Not to plug my own plugin, but the Texture Shader does something similar, with more (some might say, too many) options.
  3. Congratulation to @welshblue and @Pixey! I think it was a very good theme, with varied and imaginative entries. I also think some of the entries that didn't get many votes were excellent.
  4. The DLL: Object Pruner.zip Object Pruner is in the Object submenu. ======================================== Object Pruner conditionally erases objects based on their sizes. Objects are connected regions of non-transparent pixels. The size of each object is compared to the size of the largest object. Objects that fall outside the minimum and maximum bounds are erased. The size of each object is the number of pixels in the object. With the default settings, all objects except the largest object will be erased. The controls are: Minimum Size of Objects to Keep (Relative to Largest Object): Specifies the minimum size for objects that should be kept, relative to size of the largest object. Maximum Size of Objects to Keep (Relative to Largest Object): Specifies the maximum size for objects that should be kept, relative to size of the largest object. (If this value is less than one, the largest object will be erased.) Transparent Color for Erased Objects: Specifies the transparent color that replaces the pixel color for erased objects. The choices are Transparent White, Transparent Black, or the original pixel color with the alpha value set to zero. Show Objects as Colors (Green = Keep; Red = Erase): Specifies that objects which will be kept should be shown as green, objects which will be erased should be shown as red, and originally-transparent background pixels should be shown as white. This is a debug feature that should normally be disabled before exiting. Because all pixels are shown as opaque, this option can be useful for discovering low-opacity pixels that connect what appear to be separate objects. The user Interface: ======================================== I'm not sure how useful it is. The main purpose is to handle a situation I've encountered when trying to remove a non-uniform background color with the Magic Wand. I select the background color, but there are small scattered regions of the background that don't get selected. Increasing the Magic Wand tolerance results in parts the foreground being selected. If I erase the selected background, I'm left with unerased areas. Ideally, after erasing most of the background, I could just select the foreground with a low-tolerance Magic Wand, invert the selection, and erase the background completely. However, I'm often unable to find a tolerance that completely selects the foreground without selecting the entire image. The Object Pruner is intended to help erase all the scattered regions remaining after erasing most of the background. Since I wrote it, naturally it has more options than it probably needs.
  5. Congratulations to @Maximilian, @Pixey, @welshblue, @lynxster4, @doughty, and @dipstick! (whew!) Terrific entries in a very good theme. Many of the entries were quite haunting. I wish I'd thought of welshblue's werewolf idea. That could have made for an amusing entry.
  6. I guess @dipstick chose not to resize his entry. Too bad; it was very well done. I do, however, think there should be a rule for future competitions disallowing animation. I don't think it's really in the spirit of OOTF.
  7. My plugin has never crashed, but when I added render code that depends on the controls, I discovered that the control's value is sometimes clamped to the wrong max value. Presumably if I'd used the controls for other purposes, it could crash with an exception. void Render(Surface dst, Surface src, Rectangle rect) { for (int y = rect.Top; y < rect.Bottom; y++) { if (IsCancelRequested) return; for (int x = rect.Left; x < rect.Right; x++) { dst[x, y] = ((x < Amount1) && (y < Amount2)) ? ColorBgra.Red :ColorBgra.White; } } }
  8. BTW, I'm using PDN version 4.1.5. Are you perhaps using the beta version?
  9. A long time ago, I wrote a test program to see if I could dynamically change the max value. I just recompiled and ran it. It seems, from what I can tell so far, to work correctly. I'm not sure what's going on. protected override PropertyCollection OnCreatePropertyCollection() { List<Property> props = new List<Property>(); int w = EnvironmentParameters.SourceSurface.Width; int h = EnvironmentParameters.SourceSurface.Height; props.Add(new Int32Property(PropertyNames.Amount1, 1, 1, w)); props.Add(new Int32Property(PropertyNames.Amount2, 0, 0, h)); props.Add(new Int32Property(PropertyNames.Amount3, 0, 0, w + h)); return new PropertyCollection(props); } protected override ControlInfo OnCreateConfigUI(PropertyCollection props) { ControlInfo configUI = CreateDefaultConfigUI(props); configUI.SetPropertyControlValue(PropertyNames.Amount1, ControlInfoPropertyNames.DisplayName, "Sub-Window Width"); configUI.SetPropertyControlValue(PropertyNames.Amount2, ControlInfoPropertyNames.DisplayName, "Sub-Window Height"); configUI.SetPropertyControlValue(PropertyNames.Amount3, ControlInfoPropertyNames.DisplayName, "Sub-Window Width Plus Height"); return configUI; }
  10. Not the skull, itself, but the reflected landscape.
  11. @PixeyI'd already edited out the photo comment, since, as I mentioned, I didn't really object to it; but I wasn't referring to the source of the motorcycle image -- I was referring to the landscape reflected in the skull.
  12. I think dipstick's entry needs to be resized. It seems to be some in some variable-sized format that shows up as considerably larger than 600x600.
  13. Congratulations to @welshblue and @Pixie for their outstanding, tasty-looking entries! Thanks to all the other entrants, and to Pixey for hosting! I think this turned out to very good theme: not so difficult as to be overly intimidating, but with plenty of room for creativity.
  14. I'm not certain what you mean. In Paint.NET, all layers for a given image are the same size. Is the problem, perhaps, that you have an active selection the size of your pasted image? If so, use Ctrl+D (or Edit>Deselect) to clear the selection.
  15. The provided images don't really make it clear to me what you're trying to achieve, but I'll give it a shot. One method to do something like this is to make the canvas twice as wide as the needed image. Fill the left half with some pattern of colors. Select the Clone tool. Ctrl+click in the upper-left corner of the image to initialize the Clone origin. Click cursor at the upper-left corner of the right half of the canvas to set the cloning offset. Press Ctrl+Z to Undo the spot just drawn. Draw with the clone brush in the right half of the canvas. The image in from the right half will be copied into the lines drawn. (The origin can be any place in the left half, but you'll need to be careful to keep it in bounds.) If the image being drawn into is all opaque, a simple method is to put a color pattern in a lower layer, then use the eraser to draw by erasing the upper layer, letting the lower layer show through. Flatten when done.
  16. Using the new copy-selection and save-selection features, some like that could perhaps be done.
  17. That's too bad, considering what a great job @welshblue did on the paper cup. I remember making the paper cup for the cupcake OOTF theme. I was never satisfied with my version. Welshblue's is so much better. I tend to agree that because the paper cups are so closely associated with box candy, they ought to be allowed; especially since two entries have them.
  18. I was thinking along the same lines. Fortunately, procrastination saved me from any wasted effort. I must admit, I'm not certain what constitutes a bonbon candy. @lynxster4 says "We want to see your pretty decorations on the outside," but I think of bonbons as rather simple chocolate-covered candies. lacking much decoration.
  19. Congratulations to @lynxster4 and @Pixey! Excellent jobs on what I found to be quite a difficult subject. Thanks to @Pixey for hosting.
  20. I believe it's only off a pixel (or half a pixel) horizontally when the difference between the selection's bounding-box width and the object's bounding-box width is odd (and similarly for vertically). In that case, there are two options: move the object an integer number of pixels, but don't quite center it, or shift it by half a pixel. In one case, the object isn't perfectly centered, in the other, there's a slight blurring at the edges between pixel colors. The plugin BoltBait linked to always shifts the object an integer number of pixels.
  21. My attempt to render one of the most beautiful aquarium fish, the royal gramma.
×
×
  • Create New...