Search the Community

Showing results for tags 'color'.

More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


  • Information
    • Forum Rules
    • Paint.NET Search
    • Official Paint.NET website
    • Help Files (the official documentation)
  • Paint.NET
    • Paint.NET Discussion and Questions
    • The Pictorium
    • Tutorials - Publishing ONLY!
    • Competitions
    • Plugins - Publishing ONLY!
    • Troubleshooting & Bug Reports
  • Off-Topic
    • Grand Theory of Everything
  • Paint.NET Programming / Development
    • Plugin Developer's Central
    • Preview Center
    • Translation and Localization

Find results in...

Find results that contain...

Date Created

  • Start


Last Updated

  • Start


Filter by number of...


  • Start



Website URL









Found 9 results

  1. Hi All, This plugin is an improvement on Jotaf's Grim Color Reaper. I use this plugin a lot but wanted some improvements, suddenly I realized that the since I can code a little and I can use the skill (?) . As, Jotaf has mentioned in his post that it is opensource, so I made one mine on Codelab version 3.3. The enhancement it has that It lets you now to choose color through UI instead of going through selecting primary color. It also has an option for keeping color i.e. while Grim Color Reaper 'kills' a specific color, Kill Color Keeper has an option to preserve specific color while killing every other one. User Interface: UI is similar to Grim reaper. It has options for tolerance and cut off value. But as a significant improvement, that it has Color Wheel inside UI so you can pick up color as desired. Default is still Primary Color. There are two option for Keep color and Kill color. There are two sliders which are dedicated to these two functions. I could have made it work with same slider, but default value for kill Color always turned out to make whole image transparent for Keep Color Option. Also, there was a need of different slider description . So, I made two dedicated sliders for them with their own default value and own description. In version 1.1, there are two sliders: Function Kill Color has only one slider for it while Keep Color has two sliders dedicated to it. 1. Original Image: 2. Kill color white i.e. background. 3. Keep Color Blue i.e. for dresses here. (Please ignore mistakes in UI name & values, this screen print was taken before final DLL was built.) Versions 1.1 In Keep Color Option if the original image pixel were transparent like this Then Keep Color Options would turn transparent pixels in white color (i.e there were given some opacity while running effect). So new version checks that if Alpha is less than given threshold values. I used first sliders to ignore less opaque pixels. UI is changed, now both sliders will active for Keep Color and only first slider is active for Kill Color. Versions 1.2 Updated UI to select Color. Source Code: Kill Color Keeper.cs I personally call it 'Color keeper' but didn't wanted to leave word 'Kill', I choose one between these two candidates: "Keep Color Killer" and "Kill Color Keeper". I hope you all will find it useful. Download here: Download
  2. TechnoRobbo's Contour Filler V1.5.2 A gradient fill plugin that follows the contour of the Alpha Channel Make sure to deselect before using. Larger images take longer to render. Choose from smooth (zero slices) and stepped gradient Version 1.5.2 minor code cleanup Version 1.5.1 My apologies uploaded wrong version Version 1.5 has a smoothing component and new high speed code. Version 1.1 Updated for 4.0 Menu: Effects -> Color Text Demo Quick Example on you Tube music by TechnoRobbo CHAPLIN Bogey1 The VS Source Code The Plug-In
  3. This plugin is like a more useful version of the color replacement tool. Whereas the standard tool merely paints over pixels if they're close enough to the secondary color, this plugin recolors every pixel a different amount based on how similar it is to the secondary color. For example I'll use this colorful image: Here's the built in tool replacing pink with cyan at about 30%: Notice the ugly, harsh edges and how some pinkish parts of the image are entirely untouched. Now my plugin replacing pink with cyan: No more ugly edges! My plugin changes all pixels of the image based on how similar each is to the secondary color. *Threshold changes how strongly pixels are recolored based on how similar they are to the secondary color *Roughness changes how quickly the recolor effect falls off after the threshold is passed when continuous replacement is selected. Lower values look 'nicer' but tend to give the image an overall tint *Continuous replacement recolors all pixels different amounts and looks really nice. Cutoff works similar to the normal tool as pixels over the threshold are not recolored at all - recolored pixels however are colored more 'accurately' than with the built-in tool. Note that this plugin works like the built-in tool inasmuch as the color used and the color replaced are the primary and secondary colors in the palette, respectively.
  4. TechnoRobbo's Custom Palette Matcher v1.0.5 Conforms your image colors to your custom palette by finding the nearest color match. Version 1.0.5 Fixes Crash When No Palette Directory Exists Version 1.0.4 Browser system lets you sample palettes quickly. Version 1.03 add instant preview and interpolate option Update Version 1.0.2 Shows Transparency correctly in Palette Preview. Update Version 1.0.1 Allows manually created palettes(with errors) to be parsed and used. Manually created palettes should be loaded into PDN then saved again to correct the format. TR's Custom Palette Matcher will warn you of a bad palette but will try it's best to uses what it's given.. Menu: Effects->Color Video includes palettes posted by artists on this forum topic Video Tutorial : New Browser The VS Source Code The Plugin
  5. This effect is very simple - it converts every pixel brightness to rainbow spectrum color. Plugin has one slider to set spectrum offset. Plugin: Effects > Color > Trippy rainbow Examples: Download: TrippyRainbow.dll
  6. Hi again! And now my 2nd plugin: Selective Toning (to be found in the 'Color' submenu) User Interface: Demo: Just before posting I saw the similarity to the "Advanced Color Replacement" plugin. I still decided to post my one here, because it features some what more configuration possibilities, a blending mode selector and the possibility to use the alpha channel. The last feature enables one to use this plugin similarly like the great "Color to Alpha" plugin. This plugin is once again entirely written using the fantastic "Code Lab" plugin -- thank you, Bolt Bait! Downloads: Source files (for programmers): Toning v1.0a Best regards, Philipp
  7. This plugin is admittedly quite similar to TR's Custom Palette Matcher, but may be useful. It's in the Color menu. The Plugin: Recolor Using As the Help menu says: Recolor Using Palette replaces each pixel color with the nearest color from a specified range of the current palette. The Euclidean distance is used. This minimizes the sum of the squared differences of the red, green, and blue color components. The controls are: Starting Palette Index: The number of the first palette color to use. Palette colors are numbered from 1 to 96. Ending Palette Index: The number of the last palette color to use. Ignore Opacity When Comparing Colors: When this option is enabled, only the red, green, and blue color components are compared; the alpha value is ignored. The original alpha is preserved in the replaced color. When this option is disabled, the image and palette colors are adjusted to account for their alpha values before being compared. The distance between colors is the distance between the colors when blended with the background color that maximizes the distance. The original alpha is replaced by the alpha of the nearest palette color. Show Original Image: When enabled, the original, unmodified image is displayed. The UI: Instead of managing palettes like TR's effect, it relies on PDN's built-in palette handling, which I think is fairly easy to use. Recolor Using Palette allows a subrange of the current palette to be used. (Note the color-entry numbering is one-based, not zero-based.) On interesting (which is not necessarily the same as useful) feature is that it can take opacity into account when doing the comparison. When opacity is used in the comparison, the entire palette color, including alpha, replaces the image color; otherwise, the image alpha is preserved, and only the red, green, and blue are replaced. Here's a demonstration, using the default palette. Original image: With Ignore Opacity When Comparing Colors enabled: With Ignore Opacity When Comparing Colors disabled: (To be useful in this mode, the palette would likely need to be better suited to the image than it is in this case.) Ignore Opacity When Comparing Colors is disabled by default.
  8. The Color Clearer plugin makes pixels that match the selected color transparent, and modifies the transparency and color of the other pixels to maximize their transparency while still producing the original color when blended with the normal blending mode to a background set to the selected color. It some sense, it removes as much of the selected color as possible from each pixel. Here is the (still simple) user interface: The Make Transparent Pixels Transparent White check box specifies that transparent pixels will be set to transparent white, rather than have their colors remain unchanged. I was careful to try to make the blended image after Color Clearer exactly match the original blended image, even when the original pixels are partially transparent. I hope I succeeded. Interestingly (I think), all the math is done using integer arithmetic. I attempted to do the same thing in HSV Eraser, but I didn't take into account the precise way PDN alpha-blends layers, so there were many cases where the resultant blended pixels were off by one. Here's an example, using an image from a previous discussion. The original image is: After using the Color Picker to choose the red background color, then running Color Clearer, the result is: If the second image is placed on top of a layer filled with the background color, the merged layers match the original image. Here is the DLL: Maximilian has a 3.5.11 version. Here is the CodeLab code: EDIT: As noted next to the DLL, I intend to modify the plugin to choose better replacement colors. The current values work, in that the produce the proper colors when blended with the background color, but they are sometimes somewhat illogical choices. EDIT 2: A new version. I changed the color used when a number of colors will produce the correct blended result. I now choose the color that's nearest to the original color. For consistency, I left completely transparent pixels unchanged (except for alpha), unless an option is selected to make them transparent white.
  9. This is a rather minor plugin, but it might be useful. It's in the Effects>Color menu. (It was developed for creating my SOTW fire image.) Quoting the Help menu: Hot Metal Glow converts each pixel's color value into a color intended to mimic incandescent heated metal. The colors go from black, to red, to orange, to yellow, and finally to white. The color transition is only approximate. No attempt is made to imitate actual physics. An input pixel's color value is simply the largest of its RGB components. Brighter pixels are considered to be hotter, unless the Invert Color Range option is selected. The controls are: Celsius Temperature at Zero Value is the temperature assigned to 0 value pixels. Celsius Temperature at Maximum Value is the temperature assigned to 255 value pixels. Incandescence Threshold Temperature is the temperature at which the pixel will begin to turn red. Red Temperature is the temperature at which the pixel will be full-intensity red. (The behavior is modified by Red to Orange Shift.) Yellow Temperature is the temperature at which the hue of the pixel will be yellow. White Temperature is the temperature at which the pixel will be white. Red to Orange Shift specifies the point at which red shifts towards orange as the intensity increases. When 0, the hue remains red until the red is full intensity. When 1, the hue immediately begins to shift towards orange. (This control is useful for producing fire colors.) Orange Desaturation specifies the point at which orange will be desaturated. When 0, orange and yellow are fully saturated. When 1, orange begins to be desaturated at the Red Temperature. Invert Color Range specifies that the range of color values should be inverted, so black pixels are hottest. The Threshold, Red, Yellow, and White Temperature values must be in increasing order. If not, the values are clamped to force the order to increase, but the resulting colors are not likely to be useful. The user interface looks like this: Here is the DLL: There's also 3.5.11 version, courtesy of Maximilian. Here is the CodeLab code: Hidden Content: // Name: Hot Metal Glow // Submenu: Color // Author: MJW // Title: Hot Metal Glow // Version: 1.2.* // Desc: Convert pixel color values into incandescence colors // Keywords: incandescence colors // URL: // Help: #region UICode IntSliderControl Amount1 = 500; // [0,1400] Celsius Temperature at Zero Value IntSliderControl Amount2 = 1315; // [0,1400] Celsius Temperature at Maximum Value IntSliderControl Amount3 = 425; // [0,1400] Incandescence Threshold Temperature IntSliderControl Amount4 = 825; // [0,1400] Red Temperature IntSliderControl Amount5 = 1175; // [0,1400] Yellow Temperature IntSliderControl Amount6 = 1315; // [0,1400] White Temperature DoubleSliderControl Amount7 = 0.0; // [0,1] Red to Orange Shift DoubleSliderControl Amount8 = 0; // [0,1] Yellow Desaturation CheckboxControl Amount9 = false; // [0,1] Invert Color Range #endregion // This could be done with a 255 entry color table, but it doesn't work especially // well for CodeLab. int cMask; void Render(Surface dst, Surface src, Rectangle rect) { int minTemp = Amount1; int maxTemp = Amount2; if (minTemp >= maxTemp) maxTemp = minTemp + 1; int minRedTemp = Amount3; int redTemp = Math.Max(Amount4, minRedTemp+ 1); int yellowTemp = Math.Max(Amount5, redTemp + 1); int whiteTemp = Math.Max(Amount6, yellowTemp + 1); double redOrangeShift = Amount7; double yellowDesat = Amount8; double colorScale = 255.0 / (double)(maxTemp - minTemp); // (The "min" values are where the value is zero, but will change to non-zero.) int minRed = (int)(colorScale * (double)(minRedTemp - minTemp) + 0.5); int fullRed = (int)(colorScale * (double)(redTemp - minTemp) + 0.5); int minGreen = (int)(fullRed + redOrangeShift * (minRed - fullRed) + 0.5); double fullGreen = Math.Round(colorScale * (double)(yellowTemp - minTemp)); int minBlue = (int)(fullGreen + yellowDesat * (fullRed - fullGreen) + 0.5); int fullBlue = (int)(colorScale * (double)(whiteTemp - minTemp) + 0.5); double scaleRed = 255.0 / (double)(fullRed - minRed); double scaleGreen = 255.0 / (double)(fullGreen - minGreen); double scaleBlue = 255.0 / (double)(fullBlue- minBlue); cMask = Amount9 ? 255 : 0; // Optionally invert tohe color range for (int y = rect.Top; y < rect.Bottom; y++) { if (IsCancelRequested) return; for (int x = rect.Left; x < rect.Right; x++) { // Get the value, which is just the maximum RGB value. int value = ColorValue(src[x, y]); byte r = 0, g = 0, b = 0; if (value > minRed) { r = (byte)Math.Min(scaleRed * (double)(value - minRed) + 0.5, 255); } if (value > minGreen) { g = (byte)Math.Min(scaleGreen * (double)(value - minGreen) + 0.5, 255); } if (value > minBlue) { b = (byte)Math.Min(scaleBlue * (double)(value - minBlue) + 0.5, 255); } dst[x, y] = ColorBgra.FromBgra(b, g, r, src[x, y].A); } } } int ColorValue(ColorBgra color) { return Math.Max(Math.Max(cMask ^ color.R, cMask ^ color.G), cMask ^ color.; } EDIT: Added Desaturate Yellow feature. I noticed in many examples of hot metal, the yellow was never fully saturated. EDIT 2: Fixed Help Menu to match UI. Control is called "Yellow Desaturation" not "Desaturate Yellow." EDIT 3: Added Red to Orange Shift feature. EDIT 4: In plugin, renamed Yellow Desaturation to Orange Desaturation. (Man, do I get tired of all the updates I have to make each time I change the interface!)