iamnoob Posted May 18, 2015 Share Posted May 18, 2015 For example, I would like to blend 60% of color A with 40% of color B in order to create a new color, Color C. Someone please explain to me how I can do this. Thank you. =) Quote Link to comment Share on other sites More sharing options...
Cc4FuzzyHuggles Posted May 18, 2015 Share Posted May 18, 2015 (edited) I'm terrible at math, but I would suggest you play with the colors window. If you are new, you can learn about the color window here : http://www.getpaint.net/doc/latest/ColorsWindow.html If you just want to play around with mixing colors, you could also play with layer blending modes. Paint one color on one layer, paint another color on an above layer, and then change the above layer's blending mode. If you make a color you like, you can use the color picker tool. When you have the color picker tool active, observe the tool's options, which are just under the menu bar. You should see a place that says “Sampling: Layer” change it to “Image”. Then click on your new color. In the colors window you can “add” the color to your palette. Edited May 18, 2015 by Cc4FuzzyHuggles Quote *~ Cc4FuzzyHuggles Gallery ~* Link to comment Share on other sites More sharing options...
iamnoob Posted May 18, 2015 Author Share Posted May 18, 2015 If you just want to play around with mixing colors, you could also play with layer blending modes. Paint one color on one layer, paint another color on an above layer, and then change the above layer's blending mode. If you make a color you like, you can use the color picker tool. When you have the color picker tool active, observe the tool's options, which are just under the menu bar. You should see a place that says “Sampling: Layer” change it to “Image”. Then click on your new color. In the colors window you can “add” the color to your palette. Hmm. But I'm not sure which blending mode will achieve what I want to. You see, I'm following a color tutorial that says to mix two colors into a new one in order to create a new color that still fits with the others. So, for example, I want to take exactly 60% of a certain blue and mix it with exactly 40% of a certain green to make a new color. Quote Link to comment Share on other sites More sharing options...
iamnoob Posted May 18, 2015 Author Share Posted May 18, 2015 Basically how you can do on this site: http://meyerweb.com/eric/tools/color-blend/#3E6DC7:89E849:10:hex Quote Link to comment Share on other sites More sharing options...
Ego Eram Reputo Posted May 18, 2015 Share Posted May 18, 2015 Its a complex method to achieve color blending, but here we go... 1. Select your blue color as the Primary color. 2. Create a new layer (layer B ) 3. In the new layer, drag out a blue rectangle using the Shapes tool. 4. Select the example green color as the Primary color. 5. Create a new layer (layer C) 6. In the new layer, drag out a green rectangle using the Shapes tool which overlaps one corner of the blue rectangle. 7. Double click Layer C to open the Properties dialog. 8. Blend mode = Normal. 9. Opacity = 102 (which is 40% of the maximum 255). 10. Flatten Layers B and C. 11. With the Color Picker tool, find the color of the overlap. 1 Quote ebook: Mastering Paint.NET | resources: Plugin Index | Stereogram Tut | proud supporter of Codelab plugins: EER's Plugin Pack | Planetoid | StickMan | WhichSymbol+ | Dr Scott's Markup Renderer | CSV Filetype | dwarf horde plugins: Plugin Browser | ShapeMaker Link to comment Share on other sites More sharing options...
iamnoob Posted May 18, 2015 Author Share Posted May 18, 2015 Its a complex method to achieve color blending, but here we go... 1. Select your blue color as the Primary color. 2. Create a new layer (layer B ) 3. In the new layer, drag out a blue rectangle using the Shapes tool. 4. Select the example green color as the Primary color. 5. Create a new layer (layer C) 6. In the new layer, drag out a green rectangle using the Shapes tool which overlaps one corner of the blue rectangle. 7. Double click Layer C to open the Properties dialog. 8. Blend mode = Normal. 9. Opacity = 102 (which is 40% of the maximum 255). 10. Flatten Layers B and C. 11. With the Color Picker tool, find the color of the overlap. I'm about to sleep, so I'll try this out tomorrow and report back. But it seems like exactly what I asked for from reading, so thanks in advance! Quote Link to comment Share on other sites More sharing options...
Cc4FuzzyHuggles Posted May 18, 2015 Share Posted May 18, 2015 (edited) Would using the gradient tool with paint.net's rulers enabled, help at all? For example, if I use a blue color as my primary color and green as my secondary color and then draw the gradient (while holding shift) according to the ruler (0 - 800 on default canvas), the center of the gradient (at 400, 300) would be the single new color, but since it's a gradient there would also be the transition colors. With the help of the rulers, as well as the coordinates of the mouse, which are displayed at the bottom of paint.net, perhaps some math like percentages can be figured out. (note: the arrow keys on a keyboard can move the mouse one pixel at a time for exact placement). Re-sizing the canvas could make some of the math easier too, since you can literally make the canvas 100 by 100 or even 12 by 1. I would think this idea could be useful in some cases. Unless the gradient's transitions or paint.net's rulers aren't accurate? Edited May 18, 2015 by Cc4FuzzyHuggles Quote *~ Cc4FuzzyHuggles Gallery ~* Link to comment Share on other sites More sharing options...
MJW Posted May 18, 2015 Share Posted May 18, 2015 (edited) Here's a little CodeLab plugin the might be helpful. I call it the "Two Color Mixer" ( I chose a name that probably won't be used by some more commonly used plugin). It's in the Effects>Render menu. You can specify two colors, and the percent of the first color. It will fill the current selection (or the whole window if no selection) with the mixed color. Code: Hidden Content: // Author: MJW // Name: Two Color Mixer // Title: Two Color Mixer // Submenu: Render // Desc: Fill a region with a mixture of two colors // Keywords: mix colors #region UICode ColorBgra Amount1 = ColorBgra.FromBgr(0, 0, 0); // First Color ColorBgra Amount2 = ColorBgra.FromBgr(0, 0, 0); // Second Color bool Amount3 = false; //[0, 1] Use Primary Color as First Color and Secondary Color as Second Color double Amount4 = 50; // [0, 100] Percent of First Color in Mixture double Amount5 = 1; //[0, 4] Brightness double Amount6 = 1; //[0, 4] Saturation #endregion // Here is the main render loop function void Render(Surface dst, Surface src, Rectangle rect) { ColorBgra color1, color2; double dr, dg, db, da; byte r, g, b, a; double frac = 0.01 * Amount4; double omfrac = 1.0 - frac; if (Amount3) { color1 = (ColorBgra)EnvironmentParameters.PrimaryColor; color2 = (ColorBgra)EnvironmentParameters.SecondaryColor; } else { color1 = Amount1; color2 = Amount2; } dr = frac * (double)color1.R + omfrac * (double)color2.R; dg = frac * (double)color1.G + omfrac * (double)color2.G; db = frac * (double)color1.B + omfrac * (double)color2.B; da = frac * (double)color1.A + omfrac * (double)color2.A; double min = Math.Min(dr, Math.Min(dg, db)); double max = Math.Max(dr, Math.Max(dg, db)); // Saturation double diff = max - min; double ks = Amount6; if (ks * diff > max) ks = max / diff; dr = max - ks * (max - dr); dg = max - ks * (max - dg); db = max - ks * (max - db); // Brightness double kb = Amount5; if (kb * max > 255.0) kb = 255.0 / max; r = (byte)(kb * dr + 0.5); g = (byte)(kb * dg + 0.5); b = (byte)(kb * db + 0.5); a = (byte)(da + 0.5); ColorBgra mixture = ColorBgra.FromBgra(b, g, r, a); for (int y = rect.Top; y < rect.Bottom; y++) { if (IsCancelRequested) return; for (int x = rect.Left; x < rect.Right; x++) { dst[x, y] = mixture; } } } Plugin: TwoColorMixer.zip EDIT: Added the ability to choose the Primary and Secondary Color as the colors to mix. This might be useful, since it more easily allows the Color Selector tool to select the colors. EDIT: Added adjustments for the brightness and saturation of the mixed color. EDIT: See further down in the thread for a 3.5.11-compatible version. Edited May 20, 2015 by MJW 4 Quote Link to comment Share on other sites More sharing options...
ReMake Posted May 18, 2015 Share Posted May 18, 2015 (edited) MJW, a good implementation of the idea, which was proposed by iamnoob! Edited May 18, 2015 by ReMake Quote Link to comment Share on other sites More sharing options...
Maximilian Posted May 19, 2015 Share Posted May 19, 2015 Would it be possible to compile a 3.5.11-compatible version of the Two Color Mixer plugin? It would be highly appreciated! Quote Link to comment Share on other sites More sharing options...
MJW Posted May 19, 2015 Share Posted May 19, 2015 I'd be happy to do so, but I'm not sure how. Given it's CodeLab plugin, I assume it depends on the version of CodeLab I'm using. If you have CodeLab, I think you can probably compile it youself, since I posted the source code. Here's the (very simple) icon: Quote Link to comment Share on other sites More sharing options...
Maximilian Posted May 19, 2015 Share Posted May 19, 2015 I'll check up on that. Thanks all the same! Quote Link to comment Share on other sites More sharing options...
Ego Eram Reputo Posted May 19, 2015 Share Posted May 19, 2015 Nice icon @Maximillian: Recompiling the plugin code with CodeLab will make it compatible with your version. The question is.... why haven't you updated to paint.net 4? Quote ebook: Mastering Paint.NET | resources: Plugin Index | Stereogram Tut | proud supporter of Codelab plugins: EER's Plugin Pack | Planetoid | StickMan | WhichSymbol+ | Dr Scott's Markup Renderer | CSV Filetype | dwarf horde plugins: Plugin Browser | ShapeMaker Link to comment Share on other sites More sharing options...
iamnoob Posted May 19, 2015 Author Share Posted May 19, 2015 Tested Ego Eram Reputo's method - it works. A bit annoying, but works. Although, I found the blend tool site thingie I posted above after I had already posted this thread, and honestly, it's so simple and to the point to use that I'll probably just use that for blending from now on. But anyway, thanks to who replied! =D Quote Link to comment Share on other sites More sharing options...
Maximilian Posted May 19, 2015 Share Posted May 19, 2015 @Maximillian: Recompiling the plugin code with CodeLab will make it compatible with your version. The question is.... why haven't you updated to paint.net 4? I'd really love to. My problem is my PC is still running on an outdated operating system, plus it's an old machine and I doubt it will cope with the demands of a newer OS. To top it off, there's too little free space in the hard drives and not much RAM... yeah, I could use a new computer Quote Link to comment Share on other sites More sharing options...
MJW Posted May 20, 2015 Share Posted May 20, 2015 Courtesy of Red ochre, here's a 3.5.11-compatible version of the plugin: Colormixer.zip Quote Link to comment Share on other sites More sharing options...
Maximilian Posted May 20, 2015 Share Posted May 20, 2015 Thanks in advance to both of you for the efforts! I'm experiencing a bit of a curious problem. There seems to be a conflict between my 3.5.11 version of Two Color Mixer and Tanel's Color Mixer (a completely different plugin). The latter shows up in the Adjustments menu. When I install Two Color Mixer I have to rename the DLL to TwoColorMixer.dll because the above posted zip file has it as Colormixer.dll and Tanel's plugin already has the name Colormixer.dll reserved for itself. And after renaming and installing, I now have two instances of Tanel's Color Mixer in the Adjustments menu and Two Color Mixer is nowhere, though it should be in the Render menu. Red, can you look into it one more time, please? I have tried to compile it myself since I now have the 3.5.11 version of Codelab, but even when the DLL appears to be created successfully, I can't get it to work. There must be something wrong in my system, or most likely it's all due to my lack of skills at coding and I can't detect the problems by myself Quote Link to comment Share on other sites More sharing options...
midora Posted May 20, 2015 Share Posted May 20, 2015 Maximilian, just renaming a dll will not change the names of the effect classes inside of the dll. so if there is a conflict with the class names of the effects and Paint.NET ignores this conflict then it is not a big surprise that you are getting two times the first effect Paint.NET has found. Quote Link to comment Share on other sites More sharing options...
MJW Posted May 20, 2015 Share Posted May 20, 2015 Assuming the plugin name is still Two Color Mixer, I don't know why there would be a conflict. I selected the name with the intent on avoiding conflicting with any future, more generally useful, plugin. Quote Link to comment Share on other sites More sharing options...
Maximilian Posted May 20, 2015 Share Posted May 20, 2015 I tried to compile the DLL one more time (with Codelab 1.8, last available version of Codelab for PdN 3.5.11) but I keep getting the same error: File: C:\Archivos de programa\Paint.NET\Effects\TwoColorMixer.dll Name: TwoColorMixerEffect.TwoColorMixerEffectPlugin Version: 1.0.5618.34297 Author: MJW Copyright: Copyright © MJW Website: http://www.getpaint.net/redirect/plugins.html Full error message: System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.Parameter name: defaultValue > maxValue at PaintDotNet.PropertySystem.ScalarProperty`1..ctor(Object name, T defaultValue, T minValue, T maxValue, Boolean readOnly, ValueValidationFailureResult vvfResult) in D:\src\pdn\pdn_3_5_11\src\Base\PropertySystem\ScalarProperty`1.cs:line 136 at PaintDotNet.PropertySystem.DoubleProperty..ctor(Object name, Double defaultValue, Double minValue, Double maxValue) in D:\src\pdn\pdn_3_5_11\src\Base\PropertySystem\DoubleProperty.cs:line 27 at TwoColorMixerEffect.TwoColorMixerEffectPlugin.OnCreatePropertyCollection() at PaintDotNet.Effects.PropertyBasedEffect.CreateConfigDialog() in D:\src\pdn\pdn_3_5_11\src\Effects\PropertyBasedEffect.cs:line 86 at PaintDotNet.Menus.EffectMenuBase.RunEffectImpl(Type effectType) in D:\src\pdn\pdn_3_5_11\src\PaintDotNet\Menus\EffectMenuBase.cs:line 799 Quote Link to comment Share on other sites More sharing options...
MJW Posted May 20, 2015 Share Posted May 20, 2015 Try it with the the new version of the source code I posted. There used to be a weird bug where CodeLab would confuse a Double Slider with an Angle Control. As I recall, it happened when the double values were specified with decimal points. Just in case, I changed the default values from 1.0 to 1. It may not help, but it's worth a try. Quote Link to comment Share on other sites More sharing options...
Red ochre Posted May 20, 2015 Share Posted May 20, 2015 Sorry about that - yes sounds like a name conflict - will look into and get back to MJW Quote Red ochre Plugin pack.............. Diabolical Drawings ................Real Paintings Link to comment Share on other sites More sharing options...
MJW Posted May 21, 2015 Share Posted May 21, 2015 You're welcome to post it yourself, Red ochre. I'm not so possessive that I won't allow anyone else to post another version of the plugin. (Of course, if you'd prefer I post it, I'd be happy to do so.) Quote Link to comment Share on other sites More sharing options...
Red ochre Posted May 21, 2015 Share Posted May 21, 2015 I've recompiled as 'Twocolormixer' - only added your Icon. Had a quick test with the extremes of the sliders...I couldn't get it to crash. Attaching with MJW's permission.(thanks) Twocolormixer.zip 1 Quote Red ochre Plugin pack.............. Diabolical Drawings ................Real Paintings Link to comment Share on other sites More sharing options...
Maximilian Posted May 21, 2015 Share Posted May 21, 2015 I'm very thankful to both of you, guys! Now everything is working fine! Thanks a lot again!! 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.