Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 04/17/2017 in all areas

  1. This is a hotfix for a crash that results from copying images from some web browsers. Unfortunately this seems to be the result of a bug in either the .NET Framework or Windows. I'll try to follow up with folks at Microsoft when I have some time to do so. As usual, you can download the update directly from the website, or you can use the built-in updater via Settings –> Updates –> Check Now. Change log: Fixed a crash or hang that sometimes happens when copying images from Internet Explorer, Edge, or Firefox, and then using File->New or Edit->Paste in paint.net
    4 points
  2. Hi all! I'm an author who is super-duper slow with writing due to two young children and a full-time job on top of that, but I'm making my way toward "The End". One of the things they say for self-publishers is don't design your own covers, but I'm cheap and I enjoy creating art and I decided to anyways. My covers have seen many stages, from playing around with the twist tool in paint.net to get my base symbols, to the final product they are now. Everything I know about graphic design has been self-taught through tutorials and getting input from other people as to what works and what doesn't. Only Thanmir War and This World Bites are published, so I'm willing to take suggestions on any of the other covers. Sovereign has given me the most issues with finding something that I like, but I finally settled on what I have because it fits the tone of the story best. The four Ninier book covers were created solely in paint.net, using the various tutorials found around such as making a stone texture, making 3-D stone text, cracked floor effect, and realistic rough cast metal. This World Bites was put together in paint.net, with the world pictured made using paint.net's advanced planet tutorial. I also fell in love with this water tutorial, and found inverting the colors made for a pretty fire background. My attempts at digitally painting my characters: My Book Covers: A just-because experiment to test the realistic rough cast tutorial: Other cover options I tried but rejected: Back from 2012:
    3 points
  3. Rubber Stamp Effects -> Object -> Rubber Stamp Before: After: Changelog v1.0 (April 15, 2017) Initial release Download RubberStamp.zip Source Code https://github.com/toehead2001/pdn-rubber-stamp Icon from Fugue Icons.
    3 points
  4. Welcome to my Animation Gallery ****************************************************** After a long absence I am finally back unfortunately my images were no longer available so I have decided to start from scratch. ***************************************************************************************************** My first animation is a very simple walking stick figure using only 4 images. The four images that create the animation, the lines are to make sure that the feet always end up in the right place And this is what it looks like when animated with out the lines. (Very Basic) but it will get better, promise. =================================================================================================================== Next stage is to get something that looks like legs and get them to walk, you could draw them yourself and scan them or do what I have done and download a free image from the internet and manipulate it. below is the image I downloaded. After manipulation I end up with four images And when the four images are animated we get the following slowed down so you can see what is happening. You should notice that the leg nearest to us is not really doing anything it just swings back and to. Add four more images this time making the leg nearest to us do some walking and we end up with 8 frames constantly repeated and more realistic. ============================================================================================================= Whistling Willie Now the legs have a body and a name and a solid floor to walk on. Next is to get him to move from left to right instead of walking on the spot. ========================================================================================================= Below is a very basic 8 frame animation with Willie on a background and a tree that moves from right to left. Obviously you would need more frames to make it run smoother but I'm only showing the principle of animation. ================================================================================================================= Finished background still as Willie moves across the scene (24 frames)
    2 points
  5. I read on the first page that the original release of CodeLab came bundled with some sample Effects. Using the Wayback Machine, I dug up that old fossil from 11 years ago. I went through each one, and made them all compatible with paint.net v4. Tom's Samples.zip
    2 points
  6. Thanks BoltBait, a wonderful plugin. It's now also on YouTube. Please keep up your fantastic work! Vignette+ on YT - German with English captions
    2 points
  7. Happy Easter to All @toe_head2001.....your rubber stamp makes a great coloring tool!
    2 points
  8. Tomorrow is my birthday, but today you get the present! Remember when I wrote the Portrait plugin, MadJik wrote: Well, ETA is TODAY! It automates a bunch of steps that I make when fixing landscape pictures. It is obviously not right for everything, but I find it useful. Hopefully you will too. Download the Landscape.dll as part of my plugin pack here: https://forums.getpaint.net/index.php?/topic/32048-v If you have trouble installing this plugin, post your troubles here. Enjoy. For those that are interested in such things, here is the CodeLab source: // Author: BoltBait // Submenu: Photo // Name: Sharpen Landscape // URL: http://www.BoltBait.com/pdn #region UICode Pair<double, double> Amount1 = Pair.Create( 0.0 , -0.25 ); // Position of Horizon int Amount2 = 50; // [0,100] Sky int Amount3 = 50; // [0,100] Grass int Amount4 = 100; // [0,200] Sharpen int Amount5 = 50; // [0,100] Saturation int Amount6 = 50; // [0,100] Final Multiply Adjustment #endregion // Setup for using the various blend ops private UserBlendOps.OverlayBlendOp overlayOp = new UserBlendOps.OverlayBlendOp(); private UserBlendOps.ColorDodgeBlendOp dodgeOp = new UserBlendOps.ColorDodgeBlendOp(); private UserBlendOps.MultiplyBlendOp multiplyOp = new UserBlendOps.MultiplyBlendOp(); private UnaryPixelOps.HueSaturationLightness saturationOp; unsafe void Render(Surface dst, Surface src, Rectangle rect) { Rectangle selection = this.EnvironmentParameters.GetSelection(src.Bounds).GetBoundsInt(); ColorBgra Sky = ColorBgra.FromBgr(255,128,0); ColorBgra Grass = ColorBgra.FromBgr(0,128,0); int HorizonRow = (int)Math.Round(((Amount1.Second + 1) / 2) * (selection.Bottom - selection.Top)); saturationOp = new UnaryPixelOps.HueSaturationLightness(0, 100+Amount5*3, 0); // Setup for calling the Blur function GaussianBlurEffect blurEffect = new GaussianBlurEffect(); PropertyCollection bProps = blurEffect.CreatePropertyCollection(); PropertyBasedEffectConfigToken bParameters = new PropertyBasedEffectConfigToken(bProps); bParameters.SetPropertyValue(GaussianBlurEffect.PropertyNames.Radius, 1); blurEffect.SetRenderInfo(bParameters, new RenderArgs(dst), new RenderArgs(src)); // Call the Blur function blurEffect.Render(new Rectangle[1] {rect},0,1); // Now in the main render loop, the dst canvas has a blurred version of the src canvas for (int y = rect.Top; y < rect.Bottom; y++) { ColorBgra* srcPtr = src.GetPointAddressUnchecked(rect.Left, y); ColorBgra* dstPtr = dst.GetPointAddressUnchecked(rect.Left, y); for (int x = rect.Left; x < rect.Right; x++) { // Create a blue gradient at the top if (y < HorizonRow) { Sky.A = (byte)(int)((255.0 - (255.0 * y / HorizonRow ))*(Amount2/100.0)); } else { Sky.A = (byte)0; } // Create a green gradient at the bottom if (y > HorizonRow) { Grass.A = (byte)(int)((255.0 * (y-HorizonRow) / (selection.Bottom-HorizonRow))*(Amount3/100.0)); } else { Grass.A = (byte)0; } ColorBgra AdjustmentPixel = *dstPtr; ColorBgra SourcePixel = *srcPtr; // Sharpen (unsharp mask) double NewR = (double)SourcePixel.R + ((double)SourcePixel.R - (double)AdjustmentPixel.R) * (double)Amount4 / 100.0; double NewG = (double)SourcePixel.G + ((double)SourcePixel.G - (double)AdjustmentPixel.G) * (double)Amount4 / 100.0; double NewB = (double)SourcePixel.B + ((double)SourcePixel.B - (double)AdjustmentPixel.B) * (double)Amount4 / 100.0; AdjustmentPixel.R = Utility.ClampToByte(NewR); AdjustmentPixel.G = Utility.ClampToByte(NewG); AdjustmentPixel.B = Utility.ClampToByte(NewB); // Boost the saturation *dstPtr = saturationOp.Apply(AdjustmentPixel); // Add in the sky and grass *dstPtr = multiplyOp.Apply(*dstPtr, Sky); *dstPtr = dodgeOp.Apply(*dstPtr, Grass); // Finally, add a little "punch" to the overall picture AdjustmentPixel = *dstPtr; AdjustmentPixel.A = (byte)(int)(Amount6 * 255.0 / 100.0); *dstPtr = multiplyOp.Apply(*dstPtr, AdjustmentPixel); srcPtr++; dstPtr++; } } } Thanks to Tanel for the Sharpen (unsharp mask) code.
    1 point
  9. What's new 2017.04.03 - added pyramid to photo shapes, updated aspect ratio shapes slightly 2016.06.02 - added superellipses Photo grids I had some photo-editing to do recently and I thought it will be handy to have cropping masks to help me with it. I found that I can implement them as custom shapes, so I decided to make a set. After little research in places like this and that I came up with this set of shapes: 3x3 grid and Phi 3x3 (Golden Ratio) grid are ultimately all that I was looking for by the moment, but it's hard to stop when you started, so I've implemented everything that looks half-reasonable at least (trying not to overload shapes with details). How to use: make a new layer over your photograph; create a grid shape there and move it to find a proper composition; the simplest way to convert a shape to selection I know is to deselect it, do a Magic Wand outside and invert selection; crop image to selection; delete this utility layer; you're done. Some shapes are sensitive to proportion. Don't forget to hold a Shift button when using them. If you need differently oriented spiral, for example, you can drag one side over other side while holding Shift to keep proportions. I by no means an experienced photographer, so if you have a better idea on what should be in the set - I would like to hear your ideas and motivation. Measurements, dimensions, other grids As I said, it was hard to stop, so I started to think what other kinds of useful shapes can be implemented. And here they are, various measurement assisting tools: And some more miscellaneous grids: Some of them may have no practical use (Smith chart in raster graphical editor, anyone?), some of them may have non-optimal parameters. This is just an experiment. Let me know if you have some use for them or something like them. Superellipses Superellipses lie in between of regular ellipses and rectangles. In some designs superellipse can be more appealing option than rounded rectangle. There are few variants in the pack, with different level of "roundness": 2.5 is a power factor of choice of Piet Hein, popularizator of superellipses; superellipse with factor 4 is called squircle; factor 5 is used in iOS icon designs; factor 3 is here just to fill the gap between other values. Download mxi_paint.net_shapes_20170403.zip Or visit my page and grab it there. Ideas for future (shapes) Parametric shape generator. Your suggestions. Converter (I'd rather prefer to move this to a different topic in Shapes subforum. Not sure how to deal with forum rules.) While making the shapes, I found it's tedious and error-prone to do conversion from Xaml pages to Paint.NET shapes manually. So I've spent some time to write a converter. It's a PowerShell script which does the simple thing - takes source Xaml files from one place and puts shape files to other place. (Source files are the files created in Kaxaml according to this instruction.) (Update: Kaxaml site is dead, I changed the link to GitHub repo if anyone willing to build it from sources. As of 2019, XAML Studio might be a good enough substitution.) Script can be obtained on GitHub. The simplest way of using it is to call it from bat file. Check for a sample bat file in the same place on GitHub and customize it for your needs. PowerShell is included in Windows since Windows 7, and there should be no issues in using it on modern versions of Windows. But I will not teach you how to use it in ways other than with a bat file. Quirks Folder "C:\Users\<username>\AppData\Local\VirtualStore\Program Files\paint.net\Shapes" is not working for Paint.NET. It's quite annoying to confirm file operations in Program Files every time. Paint.NET developers should move user manageable content to user profile. (Update: since 4.0.18, it's now possible to move shapes to C:\Users\<username>\Documents\paint.net App Files\Shapes folder. Note that it's different from "paint.net User Files" folder, though.) Shapes should be fillable. If your shape consists only of PathFigures, you need at least one figure which is closed and filled. (Update: fixed in paint.net 4.0.10) Shapes will be shown in dropdown menu and will have moving grips located according to fillable area. I had to do a hair-thin trick on measurement_mark shapes to make them work properly. (Update: fixed in paint.net 4.0.10) Default FillRule is EvenOdd. Placing one fillable geometry inside other switches filling state. You may need to set FillRule="NonZero" if you want to keep all the shape filled. To be able to quickly iterate creation process and fix all of this is a good reason for the script to exist. It allows you to test your shapes, fix source files and have proper shapes immediately, instead of having manually corrected shapes which doesn't match their sources. Ideas for future (converter) Warnings for improper shapes? (Unfillable paths, what else?) Back-conversion. Not required if you follow a good practice of editing source files only. Your suggestions.
    1 point
  10. CodeLab 2.19 in Russian You can find the new version of CodeLab in Russian here. Вы можете найти новую версию CodeLab на русском языке здесь.
    1 point
  11. Thank you! That is a nicely done video! Feel free to explain my other effects. You have a very nice voice. (I wish I understood German.)
    1 point
  12. I really like the shiny effect. It has a nice golden glow!
    1 point
  13. Thanks for this great plugin pack! I especially liked the EarthsnGreys and therefore made a short video of it. Please keep up your fantastic work EarthsnGreys on YouTube (in German with English captions)
    1 point
  14. Shading is covered in this excellent tree tutorial by Jonathan Roberts http://www.fantasticmaps.com/category/tips-and-tricks/ I know the tut is based on trees, but you can learn a lot from professionals like Jonathan. He makes it look so natural and easy. I love the way he explains his techniques so simply (and also his neat use of Overlay).
    1 point
  15. Lovely image Pixey! Happy Easter to you and your family.
    1 point
  16. Okay I've released 4.0.16 which will fix the crashing and stop the bleeding. This is affecting a lot of people judging by the crash logs in my inbox. We'll have to keep digging to figure out the hanging issue and whether it's something specific to your system(s), OS versions/updates, or something else.
    1 point
  17. That's a pretty flourish! Love the gold! Happy Easter Pixey! And hubby too!
    1 point
  18. 1 point
  19. 1 point
  20. This tutorial is available as a PDF. Click here to view or download it Note: This guide is designed for laymen, and won't discus writing/editing code. If you know how to write code and want to do some development in CodeLab, please go read BoltBait's tutorials instead. Introduction Sometimes people, such as myself, will post some code, and tell you to go use it with something called CodeLab. Q. What's this CodeLab thing? A. In layman's terms, CodeLab is a plugin that allows you to write custom Effects within paint.net in real-time. Q. It says "for advanced users", so why would you have me use it!? A. That's what I hope to address with this guide. Q. Ok, but since I don't write code, what all can I do with CodeLab? A. Aside from the obvious running code that has been copied & pasted, you can build (create the .dll file) your own Effect plugins, or translate its User Interface into your native language. Q. I can't tell the difference between Ancient Greek and computer code, so is CodeLab safe for me to use? A. It's extremely difficult to break something when using CodeLab. (If you do want to break something, you have to know what you're doing.) So, yes, it's safe for the "average Joe" to use. If you are copying & pasting code from an unfamiliar source, please exercise caution. Or exercise caution always... Q. Assuming it's available, can I use the code from any paint.net plugin? A. No. Some plugins require Visual Studio. If it's compatible with CodeLab, the original author will usually tell you. Running Code - Remove the existing code, and Copy & Paste the source code you want to run. Here I have highlighted the code editor portion of CodeLab's interface. - After 3 seconds, the pasted source code will automatically execute. - Press the OK button to confirm the changes to the current layer. (just like any other Effect in paint.net) Creating a .DLL File - Press the Save button. This will save the source code as a .cs file (cs aka C Sharp aka C#). - Press the Build DLL button. This will create a .dll file you can install as its own paint.net plugin. - and Press the Build button. - The built .dll file will be placed on your Desktop. You'll need install it, but there's also a handy batch file on your Desktop that will do it for you. Translating into your Native Language - Press the Interface Designer button. - Select a UI control from the list. Here I have my 'Rubber Stamp' source code loaded into CodeLab, and the Roughness slider is selected. - Type in your Translation (I typed "Rugosité"; the French word for Roughness ... I think) - Press the Update button - Press the OK button, or select another UI control to edit to repeat the process. You could also change the Default values, but you should take caution when changing the Min and Max values.
    1 point
  21. @Humility Okay. Improve Your Artwork by Learning to See Light and Shadow, by Monika Zagrobelna: This tutorial will help you understand how we see light and shadows in real life. Redline- Notes on Cel Shading, by ThirdPotato: While it's more about cel-shading (or 'toon shading'), the author gives an insight about the color of shadows and thinking of the object as a tridimensional one. Tutorial-Cel-shading, by ThirdPotato: This one is for understanding shadows in real life, too. Tutorial-Shading Hair and Form, by ThirdPotato: Another one about cel-shading. Tutorial-Understanding Shadows, by ThirdPotato: Another tutorial, similar to the third one. Bonus: This is another one of the tutorials that advised against pillow shading, which was written by Zemael. While the last one is for MS Paint, I always thought it's knowledge can be used for other programs (except the part about the background.)
    1 point
  22. Something inspired by my latest plugin addition - Transitional Brush is what started it.
    1 point
  23. Well, it's your decision, but I think, you should try it again. You can't learn anything, if you give up. Redrawing the feather wasn't neccessary (for perspective) in my opinion - at most, because they look a little bit like fish scales. And beveling the blood is better then such a light beveling of arms and legs. It's mostly a question of the right perspective - nothing else. Here 2 little examples, what I mean: I see two options: You draw the blood or other more or less flat objects directly in the right perspective. You draw like before and use then Layers -> Rotate/Zoom. Additional an alternative wing:
    1 point
  24. I was processing a large set of photos the other day and was getting frustrated that I needed to run 4-5 different effects on each photo. I thought that all of these adjustments should be on the same UI so that I could just run one effect. So, that's what I built. (Nothing new here, just a combination of a bunch of effects.) It saved me a ton of time processing those photographs as the sliders were remembered between each run. Hopefully you'll find this useful too. To install, download this file to your C:/Program Files/Paint.NET/Effects folder and unzip it. Download here Tested with Paint.NET version 3.36 and above. Here's the CodeLab source: // Author: BoltBait // Submenu: Photo // Name: Combined Adjustments // URL: http://www.BoltBait.com/pdn // Title: BoltBait's Photo Adjustments v1.1 #region UICode double Amount1 = 0.2; // [0,1] Noise Reduction int Amount2 = -10; // [-100,100] Brightness int Amount3 = 10; // [-100,100] Contrast int Amount4 = 1; // [-10,10] Yellow Blue int Amount5 = 5; // [-100,100] Saturation int Amount6 = 30; // [0,100] Final Multiply Adjustment #endregion // Setup for using the various blend ops private UserBlendOps.MultiplyBlendOp multiplyOp = new UserBlendOps.MultiplyBlendOp(); private UnaryPixelOps.HueSaturationLightness saturationOp; // Rick, stop moving stuff around! private byte Clamp2Byte(int iValue) { if (iValue<0) return 0; if (iValue>255) return 255; return (byte)iValue; } unsafe void Render(Surface dst, Surface src, Rectangle rect) { Rectangle selection = this.EnvironmentParameters.GetSelection(src.Bounds).GetBoundsInt(); saturationOp = new UnaryPixelOps.HueSaturationLightness(0, 100+Amount5, 0); // Setup for calling the Noise Reduction function ReduceNoiseEffect noiseEffect = new ReduceNoiseEffect(); PropertyCollection nProps = noiseEffect.CreatePropertyCollection(); PropertyBasedEffectConfigToken nParameters = new PropertyBasedEffectConfigToken(nProps); nParameters.SetPropertyValue(ReduceNoiseEffect.PropertyNames.Radius, 10); nParameters.SetPropertyValue(ReduceNoiseEffect.PropertyNames.Strength, Amount1); noiseEffect.SetRenderInfo(nParameters, new RenderArgs(dst), new RenderArgs(src)); // Call the Reduce Noise function noiseEffect.Render(new Rectangle[1] {rect},0,1); // Setup for calling the Brightness and Contrast function BrightnessAndContrastAdjustment bacAdjustment = new BrightnessAndContrastAdjustment(); PropertyCollection cProps = bacAdjustment.CreatePropertyCollection(); PropertyBasedEffectConfigToken cParameters = new PropertyBasedEffectConfigToken(cProps); cParameters.SetPropertyValue(BrightnessAndContrastAdjustment.PropertyNames.Brightness, Amount2); cParameters.SetPropertyValue(BrightnessAndContrastAdjustment.PropertyNames.Contrast, Amount3); bacAdjustment.SetRenderInfo(cParameters, new RenderArgs(dst), new RenderArgs(dst)); // Call the Brightness and Contrast function bacAdjustment.Render(new Rectangle[1] {rect},0,1); // Now in the main render loop, the dst canvas has a fixed up version of the src canvas for (int y = rect.Top; y < rect.Bottom; y++) { ColorBgra* srcPtr = src.GetPointAddressUnchecked(rect.Left, y); ColorBgra* dstPtr = dst.GetPointAddressUnchecked(rect.Left, y); for (int x = rect.Left; x < rect.Right; x++) { // Boost the saturation *dstPtr = saturationOp.Apply(*dstPtr); // Yellow-Blue adjustment ColorBgra SourcePixel = *dstPtr; SourcePixel.R = Clamp2Byte(SourcePixel.R - Amount4/2); SourcePixel.G = Clamp2Byte(SourcePixel.G - Amount4/2); SourcePixel.B = Clamp2Byte(SourcePixel.B + Amount4); *dstPtr = SourcePixel; // Finally, add a little "punch" to the overall picture ColorBgra DestPixel = *dstPtr; DestPixel.A = (byte)(int)(Amount6 * 255.0 / 100.0); *dstPtr = multiplyOp.Apply(*dstPtr, DestPixel); srcPtr++; dstPtr++; } } } This is now included in my plugin pack.
    1 point
×
×
  • Create New...