-
Posts
2,845 -
Joined
-
Last visited
-
Days Won
70
Everything posted by MJW
-
How to soften/feather a selection
MJW replied to DavidP's topic in Paint.NET Discussion and Questions
Other people aren't misunderstanding or holding out on you: There is no such thing as a feathered selection in Paint.NET. Repeatedly asking for it won't add the feature. Your only option within PDN is to follow the suggestions on how to achieve a similar result in other ways. That is, assuming Rick Brewster doesn't decide to drop everything else he's working on for PDN so that he can immediately add feathered selections to the next release. You probably shouldn't count on that. Doing what you want to do -- blurring a region with a soft transition -- isn't all that difficult. I describe another method in a different thread. It isn't quite as easy as using a feathered selection, but most things would be easier if there were a special built-in feature to do them -
I think there are probably better ways to do what you want to do. For instance: Duplicate the image layer (so you have two layers with the original image). Blur the lower layer In the upper layer, use a large Eraser with low Hardness to erase the areas you want to blur. The blurred lower layer will show in the erased areas. The low Hardness gives a soft edge. If there are really large areas to erase, use a selection along with Erase Selection to erase that main area, then soften the edge with the Eraser. Merge the layers. EDIT: There's another current thread on that very subject with some more suggestions.
-
Picture moves to edges when drawing and ruins it
MJW replied to Mick Berg's topic in Paint.NET Discussion and Questions
Yes, I believe I know what you're referring to. When you hit the edge, the canvas starts rapidly auto-scrolling, resulting in a long line in the direction you're moving the paintbrush (or whatever other tool). It can be quite irksome. The only workaround I know of is to make sure whenever you get near an edge, you stop and manually scroll the canvas to move the location you're painting away from the edge, before continuing. It's inconvenient, but on the other hand, I think it's usually a good idea to break up painting into a number of steps, so that when you make a mistake and have to undo, you don't undo all your work. I suppose this (unintentionally) helps encourage that behavior. -
Layers - Rotate /Zoom not functioning correctly
MJW replied to Dee's topic in Paint.NET Discussion and Questions
It works as intended, it's just somewhat confusing. The third control determines how far the axis of the sphere is tilted from the center-line (the "center-line" being the vector pointing outward toward you). When the third control is zero, the axis points along the center-line. The second control determines the direction it's tilted. If the axis of the sphere isn't tilted from the center-line, the "direction it's tilted" has no meaning. Therefore, the second control has no effect when the third control is zero. -
I think to provide any meaningful responses we'd need to know a lot more about the image. In fact, I'd be surprised if anyone could give useful advice without seeing the image (or a very similar one). However, unless the image is very simple, or the lines are in an isolated region, I suspect it won't be an easy task.
-
Congratulations (and thanks) to @Pixey and @lynxster4! Terrific winning entry from Pixey! Sorry there was no entry from me. I just couldn't come up with an inspiration. If only black widows spun webs with more aesthetic appeal I might have done something with that. It's bad enough they have deadly venom, must they also be so sloppy?
-
I think what you need is BoltBait's Paste Alpha plugin. Copy the black-and-white image to the clipboard, then run Paste Alpha on the color image. The default mode of Paste Alpha is to use the intensity of the clipboard image to determine the alpha of the canvas image (the layer you're running it on). That's what you want.
-
I started writing this, but was interrupted before @NinthDesertDude posted a reply. I hope it may shed some additional light on the question. (I assume that when entering into this code the contrast is in Value and is between -100 and 100, and Red, Green, and Blue have been scaled to the 0 to 1 range. I changed the name from Value to Contrast to reduce confusion) The idea behind the contrast adjustment is to stretch the colors outward from the middle value of 0.5 when the contrast is positive, and compress then toward 0.5 when the contrast is negative. Contrast = (100.0f + Contrast) / 100.0f; This step shifts and scales the contrast from the range -100 to 100 to the range 0 to 2. Original -100 -> 0 Original 0 -> 1 Original 100 -> 2 Contrast *= Contrast; This step stretches the upper Contrast range when the original Contrast is greater than 0, while not affecting original Contrasts of -100 and 0. These are special cases: -100 results in no contrast (all colors are the same), while 0 results in no color change. Presumably, it was felt desirable to increase contrast change when the Contrast is at high values without changing the special cases. Original -100 -> 0 Original 0 -> 1 Original 100 -> 4 Red = (((Red - 0.5f) * Value) + 0.5f); (etc.) (I omit the multiplication by 255, which is simply to scale the color components from the 0 to 1 range back to the 0 to 255 range.) The subtraction of 0.5 shifts the range so that the middle value, 0.5, becomes 0, values less than the middle value become negative, and values greater than the middle value will become positive. The scaling increases values that are now (after 0.5 is subtracted) greater than 0, decreases values that are now less than 0, and leaves values that are now 0 unchanged. The addition of 0.5 shifts values that were originally 0.5 back to their original values, no matter what the contrast : ((0.5 - 0.5) * Contrast) + 0.5 = 0.5. Now consider the several cases. If the original Contrast is 0, after the first two steps it will be 1. We'll have: Red = (((Red - 0.5f) * 1) + 0.5f); It's easily seen that the color value will be unchanged. If the original Contrast is -100, after the first two steps it will be 0. We'll have: Red = (((Red - 0.5f) * 0) + 0.5f); For this case, the color value will be 0.5, no matter what is originally was. So there will be no contrast in the final image -- all colors will be the same mid-gray. If the original Contrast value is between -100 and 0, after the first two steps it will be between 0 and 1. Colors less than 0.5 will be increased; colors less than 0.5 will be decreased. All the colors will be made closer to 0.5, so the contrast will be decreased. If the original Contrast is greater than 0, after the first two steps it will be greater than 1. If the original Contrast was 100, after the first two steps it will be 4. Original Contrasts greater than 0 cause color values less than 0.5 to decrease and color values greater than 0.5 to increase. Consider the case where the original Contrast is 100. After the first two steps it will be 4, so: Red = (((Red - 0.5f) * 4) + 0.5f); If Red is 0, it will become -1.5. If Red is 0.375, it will become 0. If Red is 0.5, it will become 0.5. If Red is 0.625, it will become 1.0. It Red is 1, it will become 2.5. All values of Red less than 0.375 will be made negative and all vales greater than 0.625 will be made greater than 1. Since the color values must be between 0 and 1, they'll need to be clamped. Looking at the original code, I see that it is clamped. The fact that color vales that aren't near 0.5 will go out of range and need to be clamped is the price that must be paid for greatly increasing the contrast of values near 0.5. EDIT: I'm somewhat skeptical of this method of adjusting the contrast. I think it would cause significant color shifts, because each color component is changed independently. The color would shift towards the color of the maximum of the RGB components. Orange would shift toward red, and yellow-green would shift toward green. Maybe it's not a problem, but it seems like it might be. Seems like a better method is to, in essence, convert the color to HSV, apply the contrast adjustment to V, then convert back to RGB. I expect there's probably a more efficient way of achieving the same result, based on the minimum and maximum color components, though off hand I don't know what it would be. I tried looking at how PDN does the contrast adjustment for Brightness/Contrast, but it's quite confusing, so without taking a bit more time, I don't know.
-
Before attempting to manually blend the edges, you should probably put the different elements in separate layers, then adjust the Hue/Saturation and Brightness/Contrast to match them as closely as possible. BoltBait's Hue/Saturation+ may be useful, since it allows a range of colors to be modified without changing colors outside the range. If there's a region of overlap, you might try manually feathering the edge of the top element by erasing with a large, soft Eraser. Setting the Primary Color to be partially transparent (alpha < 255) will reduce the degree to which the Eraser erases on each pass, giving better control.
-
There's no problem with that. Posting to threads in the "Plugin - Publishing Only!" forum is always considered perfectly proper, no matter how old the thread. Rick Brewster: "Don't reply to very old threads. . . . However, this rule does not apply to The Overflow, Tutorials, Pictorium, or Plugins sections of the forum."
-
It's actually pretty simple. The Blend Mode of a layer determines how that layer is combined with the layers beneath it. Additive mode adds whatever's in the layer to the layers below. Because the Green and Blue layers use Additive mode, the combined image consists of the Red, Green, and Blue layers added together. Looking through a red filter removes all but the image in the Red layer. Good job with the image you made, the portrait is nicely disguised by the top layers.
-
It can be done fairly easily without a special plugin. Convert the original image to black and white. Run Ed Henry's Extract Channel plugin. Set the channel to Red, and uncheck the Grayscale checkbox. The image will now be red. Add a layer, and set its Blend Mode to Additive. Fill the layer with some random black and white pattern. For example, run Clouds, perhaps followed by Dents or Crystalize. Run Extract Channel, this time setting the Channel to Blue. Add another layer, and set its Blend Mode to Additive. Fill the layer with some random black and white pattern. Run Extract Channel, this time setting the Channel to Green. Flatten the image. The effect is best when the Green and Blue layers obscure the image in the Red layer. EDIT: Though it's probably obvious, I should have mentioned that the Blue and Green images don't need to be random patterns -- they can be any black-and-white images, colored by applying Extract Channel. In the original examples, they're other portraits.
-
How do you change the paint reflection on a car?
MJW replied to AstroPainter's topic in Paint.NET Discussion and Questions
Without seeing the image, it's pretty much impossible to say how difficult it would be, or to offer any coherent suggestions. I rather doubt, though, that it will be easy. Usually for this sort of thing, there's no automatic or simple way to distinguish between what should be eliminated (the reflections) and what should be kept (the van's features and shading). -
I recommend you purposely rotate the P-51C so that it's symmetrical. You can use BoltBait's Level Horizon/Plumb Bob plugin. Afterward, you should also center it with the xod's Align plugin. I suggest the following steps: Sample the background color with the Color Picker tool, making it the Primary Color. Duplicate the image layer. On the top layer, use the Lasso tool to select the plane and nothing else but some of the background. The selection does not need to be in the least bit exact. Just make sure to surround the plane, and include nothing else except background. in other words, exclude the text and the border. Fill the selection with the Primary Color to eliminate the plane. This will be the new background for the image. Move the lower layer to the top, and make sure it's selected. Invert the selection. Fill the inverted selection with the Primary Color to eliminate all but the plane. Clear the selection (i.e., Deselect). Use the Magic Wand with a fairly low tolerance to select the background of the top layer without selecting any of the plane. The tolerence should be low enough that none of the pixels on the plane's edge are selected -- only pure background. Erase the selection (so only the plane remains). Use the Level Horizon/Plumb Bob plugin to straighten out the plane. You can either do it horizontally by using the lines on the wing, or vertically by using the plane's mid-line. Run the Align plugin to center the plane. (You may only want to center it horizontally.) Now do whatever you want to the plane. Believe me, one thing experience has taught me is that it's always easier to make things well-positioned in the first place, rather than to always be working around bad positioning. Once you're done, you can reposition the plane if you want, then flatten the image. If the image you show is the actual scaling, you might want to double the size of the image before working on it, then resize when you're done. It would make things easier.
-
Congratulations to @lynxster4 and @Pixey! Very well done entries by one and all. Lynxster4's open-book entry was a nice variation.
-
Sadly, it's considerably more than just transferring to VS. You must implement all the controls yourself, rather than relying on IndirectUI. When you do so, the OK button will trigger an event handler, so you can do whatever you want when Cancel is pressed. Some time ago I listed the main routines that need to be implemented to work in PDN. Though it's been quite a while, I think it's probably still accurate. The thread also has links to some example code. I don't think writing a non-IndirectUI plugin is all that difficult: it's mostly just a Windows Forms application with some hooks into PDN. However, maintaining the look-and-feel of a standard PDN plugin would be, I expect, quite a challenge.
-
What I'm sure you're looking for is a way to distinguish the final rendering pass from the interactive rendering done in response to control changes. Unfortunately, there's no way to do that with IndirectUI plugins; though BoltBait, I, and others have long lobbied for that feature. The only current options are to add a checkbox control to specify the final rendering should be done (most inelegant and inconvenient for the user) or write a non-IndirectUI plugin (more difficult).
-
Noob question - how to select something?
MJW replied to idonteven's topic in Paint.NET Discussion and Questions
Others may work differently, but I often put a number of related elements in the same layer provided they don't touch, so I can independently move them around. For a face, unless there was a good reason not to, I'd almost always put both eyes on the same layer, and maybe the mouth and ears, too. I find having too many layers to be rather unwieldy. -
Noob question - how to select something?
MJW replied to idonteven's topic in Paint.NET Discussion and Questions
That may actually be the answer the original poster was looking for, without knowing it, but I think everyone assumed (at least I did), that the hope was to be able to re-select the original Shape as a Shape: -
Noob question - how to select something?
MJW replied to idonteven's topic in Paint.NET Discussion and Questions
Once a Shape is finished, it's rendered as pixels, and no longer has a separate existence as a shape. Doing otherwise would be completely impractical. Suppose a shape is distorted using Dents, and partially erased. Is PDN supposed to keep track that that group of pixels is a modified version of some shape, and provide for some way to select it? -
Congratulations, @lynxster4 and @Pixey! That theme was much more challenging than it seemed like it would be. The shading of the seam in lynxster4's ball is especially nice. I used Furblur to do the fuzz. As lynxster4 mentioned, it takes a bit of experimentation to find the right settings. I believe I ended up running it twice to add fur to the fur. I also ran BoltBait's Feather, which helped soften the look of the fuzz along the ball's edge. A trick I used (which I was rather pleased with) is that I added a bumpy texture a sphere with Texture Merger, shaded it using Texture Shader, then ran Furblur. That provided some shading variation to the strands of fuzz.