Jump to content

NinthDesertDude

Members
  • Posts

    615
  • Joined

  • Last visited

  • Days Won

    15

Everything posted by NinthDesertDude

  1. Drawing with brush dynamics (similar to Krita/Photoshop), but within Paint.Net! Everything in the pic below was drawn with it except the letter shapes Additional thanks to TechnoRobbo, Null54, Pyrochild, Toehead, and xchellx for valuable code contributions Using Dynamic Draw 1. Pick a brush image (and add your own under Settings - Brush section -> Brush Image Locations) 2. Change settings (don't forget you can scroll down for more settings) 3. Draw on the canvas (with some tablet support for huion/wacom via WinTab) You'll see explanations & keyboard shortcuts in a tooltip as you hover over settings. Note: If you're working with multiple layers, you can merge down all the layers below to copy it to the clipboard and use it as the background in a right-click menu on the canvas itself. Installing Extract the Dynamic Draw folder to the Effects folder of your paint.net installation, which for me is at C:/Program Files/paint.net/Effects. Leave it in the folder. Then restart paint.net. What's New? changelog new Added an effect dropdown to select and apply filter effects using the brush. Certain incompatible effects are blacklisted. tweak Significant speed increases for larger brush drawing due to parallelization. Get Dynamic Draw v3.3 optional extra brushes How to use Dynamic Draw old downloads Source code
  2. If that's how people feel about it as-is, I'll go ahead and make a separate thread for it so I can give advice on how to use it. Thanks for the positive feedback, everyone! @Red ochre I'll look into that. I also need to draw the selected area and darken the unselected area (if a selection exists), similar to how Pyrochild does it in the Smudge tool. And maybe a few other things.
  3. I like the tree and sky texture -- it makes me want to paint
  4. @toe_head2001 I was nearing completion, but ran into a transparency bug. I documented it here. Being in college gives me little time to work around it, or I would've switched to a different graphics library. You can use it (with a transparency bug) here: https://drive.google.com/open?id=0B6r81tGW7hODOHl6S1NBVnJhOHM I would love it if you or anybody else could find a solution. My code is clean and legible, which should help.
  5. I've gone through almost every plugin posted on these forums and kept only 16. This is one of those 16. So keep up the good work. Unfortunate that the more technical plugins (i.e. the ones with transparency) never get upvotes.
  6. I'm not sure if the image is displaying what you have, what you want, or both. Here are some plugins that might (or might not) help. The Alpha Mask plugin uses a file as an alpha map for the current drawing. The Channel Ops plugin lets you perform basic operations with channels, including the alpha channel. It can set alpha or map channels to alpha, namely. The Alpha Threshold plugin lets you change gradients of alpha, in case you go with the previous two methods but want the image to be proportionately more opaque/transparent.
  7. These sort settings in the Paint.NET Discussions and Questions thread section... Give me this: It looks like the views and post names are retained in what I'm guessing are deleted posts. -1 replies tells me I shouldn't be seeing these. It's an error spanning the full site. I hope this is being posted in the right place; I didn't see anywhere to post forum or website bugs. Rick?
  8. I'm guessing you're trying to load the JPG file after saving it. The JPG itself will not store history like that. The message means you can press control + z at the same time to undo the flattening as long as you don't close or switch images. It's Paint.NET itself that stores the history of your work, and that history is discarded in all saved files to conserve space. If you need to keep both the JPG and the separated image with layers, first save as JPG, then without doing anything else, use control + Z to undo the flattening. Now save as a pdn file to keep all the layers separately.
  9. Yep! I've been thinking that for awhile now. It's peculiar because all images are kept as 32bppARGB. The premultiplied format is 32bppPARGB, so I'm not sure why they're being premultiplied. I read that images are premultiplied when they're created (that the alpha blend function from C++ was incorporated like that in the C# version of GDI+, which I would call a design flaw). //Something along the lines of this: Graphics g = new Graphics.FromImage(the_entire_image); g.DrawImage(the_brush_image, xPos, yPos); No, which is why I think it's premultiplied alpha causing problems (it's the main symptom). The colors are darker and the more I draw, the darker they get (all the way to black). The alpha increases with each brush stroke, of course, but that's fully expected. I wrote the code correctly, but it doesn't solve my problem. I tried FromPremultipliedAlpha, which tends to increase aliasing. The other is less effective yet. I tried applying it once and twice, to the brush before/after rotation, or both. Here is the code I used.
  10. Download here (too large to attach): Brush Factory (Beta) Brush Factory allows you to draw brushes with basic dynamics, like randomized scaling, rotation, and transparency. Example below. It works well on images that are absolutely opaque. But, if the image has any transparency at all, it begins to cause strange errors. Consider this. Notice the obvious gray border around the white brush stroke on the second image. That shouldn't happen. These colors are actually darker (they are not white anymore, and it's not the alpha making it look gray there). This exact type of error occurs when you simply open/close the dialog, undo/redo, and draw over transparent regions. It can be hard to see esp. when simply opening and OKing the dialog, but it's there, so don't use Brush Factory with transparency. Anyway, I'd love to get help with fixing this GDI+ issue. I've been here: http://stackoverflow.com/questions/6615340/color-value-with-alpha-of-zero-shows-up-as-black http://stackoverflow.com/questions/15956424/gdi-bug-anti-aliasing-white-on-transparency http://stackoverflow.com/questions/1861305/c-sharp-resized-images-have-black-borders http://stackoverflow.com/questions/1890605/ghost-borders-ringing-when-resizing-in-gdi http://stackoverflow.com/questions/2024757/how-to-solve-grayish-frame-issue-when-scaling-a-bitmap-using-gdi http://stackoverflow.com/questions/6744067/drawimage-function-over-winforms-does-not-work-correctly http://www.codeproject.com/Articles/14884/BorderBug I read that there is a Border Bug where resized images include pixels outside the image, which are assumed Black, and involve them in the calculation (resulting in blackened borders). I read that creating a new bitmap automatically premultiplies each pixel by its alpha, so I've tried a tested workaround that locks the bits and copies them over (to avoid multiplying by alpha), but this doesn't solve my issue. I've tried all the solutions presented here, which I summarize below: - Any combination of InterpolationMode.NearestNeighbor, SmoothingMode.None, and PixelOffsetMode.Half. - Clearing with a transparent color, Color.White, and Color.Black, along with the above attempts as well. - Workarounds for cloning bitmaps, sometimes in conjunction with other workarounds above. - Using an ImageAttributes object and setting WrapMode to TileFlipXY, sometimes in conjunction with above workarounds. I've attached the source code along with the .dll. Please try to help if you can! Otherwise, I'll have no choice but to port the entire thing to another graphics library that doesn't have these silly errors and it'll take ages. Feel free to point out any side bugs so I can fix them too; I know a few of them already but am focusing on this now. Thanks. Download here (too large to attach): Brush Factory (Beta)
  11. You are, by dictionary definition, being rude here, under the first definition given, by expressing an impolite concept in an intentional way. Hopefully there won't be any confusion in the future
  12. I'm making a separate plugin derived from the same source code. There isn't much in common anymore except the layout, canvas functionality, and brush support; most everything else is my own. As a quick rundown of features I have completed:
  13. No problem. TR lent me the source code, so I'm sending all features I tweak and bugs I discover or patch to him for our mutual benefit The dynamic brush plugin is called Brush Factory and is nearing completion, but I have college in the way and there's this pesky rotation issue where rotating the brush causes it to be smaller by as much as 33%. The alternative is clipping the edges, which is a no-go. But I'm making progress and I have more than 80% of it complete.
  14. This will be a gem of an asset for my Blender work; it's the only thing I've seen that does this (though I've seen similar transitions in commercial animations at times). I see you're starting to make some really complex plugins of late. Great work!
  15. I don't know how much experience you guys have with visual studio, but I've been working on a plugin recently and decided I was sick of the default Winforms sliders. I want to use Paint.Net's IndirectUI where I can to minimize the confusion users might have when working with my plugin. But, since my plugin is fairly advanced, I can't design it entirely with IndirectUI; I have functionality that can't be replicated with the few controls available. I tried importing the controls into Visual Studio Designer, but I couldn't find anything (except the angle choose control, which I don't need). I guess that's why it's called IndirectUI. I'm setting up the IndirectUI controls, but I'd like to have total control over where they are placed and so on. I don't know how to handle this with my current understanding of the framework; it looks like I just have CreateDefaultConfigUI() for the layout. I can't do this since I must have my own controls for the plugin to function correctly. Any ideas?
  16. Basically, there are two goals here: making the texture, and applying it. There are different ways to do these two steps and you can mix-and-match them. Make a texture Take the t-shirt and filter out unwanted colors, or manually select and delete sections with magic wand tool, or apply other effects until you get the dots by themselves on a transparent background. If the dots have an edge around them, download and apply the AA's Assistant effect. Or, create your own texture with noise rendered on a white background using 0 color saturation and max intensity. Use switch gray to alpha (download it if you don't have it), and you have a rough texture to work with. You can combine multiple noise layers like this (when you make a new layer to do this, you need to have opaque pixels for the noise to render, so color new layers white before applying noise and compositing them). Compositing layers = merging down. Or, create your own texture using a variety of tools and brushes, effects like Fragment, and other image editors, then make the background transparent (if not already) with switch gray to alpha and put it on a new layer. Clone stamp it until it covers your image, or copy it to multiple layers and delete the overlapping parts from each layer (more tedious). Modify the texture If unhappy with the results, Fragment is a great effect for dotty textures. Also try making small dots larger with Crystalize, and blur the result if necessary using gaussian blur. If the dots are too dense and there is still space between them, use AA's Assistant and edit the settings until the dots have more space around them. Apply the dents effect to warp the positions of the dots, or do it manually with distortion tools like twist that provide a brush to work with. If the texture isn't quite in the right dimensions, go ahead and grab the eraser tool and erase the edges. It might help to use a low hardness for softer edges. You could just make a lot of noise on a separate layer using the noise technique and then, on the same layer, erase around the areas that aren't on top of your image (you don't want a cracked dot pattern outside the boundary of your image). You could also switch to the original image layer, select the background, then switch to the new dotty texture layer and press delete to get rid of all texturing outside the bounds of your original image. Now that the texture is correct, you can color and texture it if you'd like to apply it on top of the original image. Use the magic wand tool to select the transparent background, ensuring that flood mode is global (it's an icon with a picture of a globe), and invert selection to get all the dots selected. Now you can color and texture them without worrying about accidentally coloring/texturing outside the lines. As usual, whenever you texture something, you should do so on a separate layer so it's easier to undo or erase. Use the texture You can apply the texture on top of the original image as-is. Put it on a separate layer and merge down. You could alternatively select the texture by selecting part of the transparent background with the flood mode option as global (a filled-in globe image), then invert the selection and switch to the original image layer, then delete. This leaves a cut-out. Some of these tricks are really nice to remember, like making selections with magic wand on one layer and switching to another layer to use the selection. Hope this helps
  17. Thanks so much, TR. I'm cleaning up the naming conventions. You might want to map the form OK and Close buttons so the user can press enter to run the plugin and escape to cancel. I'm also working on zooming in/out relative to the mouse position, like Paint.NET does. I'll give you any cross-compatible features I can come up with so you can integrate them into your plugins as my way of saying thanks.
  18. I still have this problem. I'm now using Paint.NET4.0.9, which is the latest build. Computer Specs: 32-bit Windows 7 SP1. Ram is 1.94GB. AMD graphics card. Hardware acceleration for Paint.NET is off.
  19. Is there any chance in the world I could maybe pretty please get the source code for the brush? I have 1000 ideas and some are really good. I want to populate a list of effects and use the brush to 'draw in' the effect by rendering it on a separate surface and writing over pixels wherever I draw. I also want to make a brush that randomly scatters the pixels under it by an amount. It'd be a "diffuse brush". I also want to make more dynamic brushes if I can, but first I'd need access to (or an explanation of how to implement) brushes the way they're done in this plugin.
  20. Overview This is based on my previous edge detector, which went from top left to bottom right and checked each pixel to see if it contrasted with another pixel by some degree in the chosen channels. The pixel has a magnitude and angle, but the angle is randomized instead of being set as it was with my last edge detector. This effect now also has a quality setting to determine the number of passes it makes per-pixel. As a result, it hits all angles in a 'fuzzy' way, and may require multiple passes to get smooth edges. Purpose and Applications This is used to make outlines that reduce the data needed to analyze an image, deducing areas of interest, and enabling the use of many interesting edge-based effects. I used it to make sharp or stylized outlines as needed. You can also get the edge data alone as white-on-black, then select the edge pixels and do as you wish with it. For programmers, it's easy to add an effect. Options Sampling range: the magnitude for the vector (the other component is the angle) that determines how thick edges are. Quality: The number of passes to make. Background color: This selects how the background appears. It may be black, transparent (replacing the image), or transparent (on top of the image). The foreground is black unless the background is black, in which case the foreground is white for visibility. You can always invert the colors later. Intensity threshold: All thresholds are values that describe how 'different' pixels have to be to be detected as edges. This one deals with intensity. Red, green, blue, and alpha thresholds: These deal with the rgba channels. See above. Remarks Located in the Stylize folder. Using blurs before edge detection might improve accuracy. Download: Fuzzy Edge Detector Source Code: Github The MIT license added to the source code does not apply to past users of the source code. I just needed to set an actual license to avoid ambiguity.
  21. Thanks Rick and Cc4FuzzyHuggles. I'll look at the plugin browser and see if it works in a fair way.
  22. Is it possible to get a list of all effects, including effects which are user-installed, and access or execute them in some way? I know that Pyrochild has a random effect plugin that presumably works this way. I want to make a plugin that saves the current image, executes a desired effect of the user's choice, then overwrites the result for the red/green/blue/hue/sat/val/alpha channels, in order to simulate channel locks. I think there's an Effect Lab that also accesses effects, but I don't know if it can access user-installed effects or not. Also, the list of effects should be obtained in a fair way like Rick wants. Thanks in advance.
  23. Thank you for the compliments, racerx and Djisves. It's highly appreciated That's a valid point. I guess I didn't look at the Effects submenu in Codelab because the ones that I have don't match my plugin (I have no plugins that use the 'Color' menu). Updated (all cosmetic updates): - Now in Effects > Colors submenu. - New icon. - Url link updated to this thread. - Menu text had six dots on accident. Now has 3, as in "Replace Colors..."
  24. Sashwilko, the forum doesn't allow me to directly upload a .dll file because it considers .dll files potentially dangerous. I have uploaded the file as a zip file to meet your request, and updated my post. I'm sorry for all the trouble you've experienced in trying to install this plugin. In the future, I will upload all my dll files inside zip files.
×
×
  • Create New...