YellowAfterlife Posted August 8, 2012 Share Posted August 8, 2012 (edited) Channel Swap is a effect that I've made recently. It allows to manipulate colour and alpha channels of image, switching them between a number of options, and mixing them with clipboard contents. It's interface looks like this: And it can serve a lot of purposes, combining pixel data for use with other effects among other things, which can be used to make effects like this, for example: (I've also posted a step-by-step process of making that image on my blog) Description of options: Colour: Colour (RGB) value for output image Colour - original RGB from image InvColour - inverted RGB from image (255 - n) Alpha - alpha channel from image (AAA) InvAlpha - inverted alpha channel from image (AAA) One - white (FFFFFF) Zero - black (000000) Foreground - uses RGB values from foreground colour Background - uses RGB values from background colour Use image from clipboard - if set, clipboard contents are used instead of source image Alpha: Alpha (A) value for output image Alpha - original A from image InvAlpha - inverted A from image (255 - A) Colour - computes average from RGB in image ((R + G + / 3) InvColour - inverted average from RGB in image One - fully opaque Zero - fully transparent Foreground alpha - uses A from foreground colour Background alpha - uses A from background colour Use image from clipboard - if set, clipboard contents are used instead of source image Mix alpha - If turned on, resulting alpha is mixed with source, rA = sA * A / 255 (where A is defined by Alpha option) Among it's sole uses, you can do the following with it: Make image opaque (or of given alpha value) Make image invisible (handy, as you can hide information in seemingly empty PNG images this way) Fill image with colour while preserving alpha Combine alpha of image with a constant value or alpha mask Fill image with clipboard contents (with or without preserving alpha) Invert alpha of image Get alpha 'mask' of image Apply existing alpha mask to image (more possibilities) Once installed, effect can be found as 'Effects/Color/Channel Swap...', and can be easily identified by a icon with green arrows, taken from FamFamFam icon pack to match up existing icons nicely. Download: Zip file with effect DLL is attached to the post. You can also download it from SolidFiles, if attachment doesn't work somehow. Note: Currently, effect ignores alpha information of clipboard contents. If someone (Rick Brewster?) could explain how normal clipboard manipulation works in Paint.NET (method reference?), it would be very helpful. My current implementation of clipboard reader part is as following: private Surface _clipboard = null; protected Surface clipboard { get { if (_clipboard != null) return _clipboard; System.Threading.Thread th = new System.Threading.Thread( new System.Threading.ThreadStart(_clipboard_get) ); th.SetApartmentState(System.Threading.ApartmentState.STA); th.Start(); th.Join(); return _clipboard; } } private void _clipboard_get() { Bitmap d = null; System.Windows.Forms.IDataObject o; try { o = System.Windows.Forms.Clipboard.GetDataObject(); if (o != null) d = (Bitmap)o.GetData(typeof(System.Drawing.Bitmap)); } catch (Exception) { } _clipboard = ((d != null) ? Surface.CopyFromBitmap(d) : null); } I've rechecked code not once now, and have made long searches, but all relevant results are using same methods to obtain clipboard data. Have a nice day. Channel Swap.zip Edited August 8, 2012 by YellowAfterlife Quote it would seem like I cannot remove a signature Link to comment Share on other sites More sharing options...
Ego Eram Reputo Posted August 8, 2012 Share Posted August 8, 2012 Can you please make it more obvious what the different options actually do? Some screenshots would help. At least give us a rundown of the functions of each. You might like to also explain how your plugin differs from these others so users have some idea what to use your plugin for. 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...
YellowAfterlife Posted August 8, 2012 Author Share Posted August 8, 2012 Edited first post with description on what everything does. Since options work separately for colour and alpha, it would take a lot of images to show everything. About comparison to other plugins: Color Replace - seems to do different actions. Also all links are broken, and download leads to topic where there isn't a copy of plugin available. Channel Mixer - that's actually a very nice plugin, haven't seen that one. It serves similar purposes. My effect is slightly simpler than that (as can be seen, you can not specify modification for each separate R/G/B channel), allows to use clipboard, and theoretically would be faster to use. Quote it would seem like I cannot remove a signature Link to comment Share on other sites More sharing options...
Ego Eram Reputo Posted August 8, 2012 Share Posted August 8, 2012 Edited first post with description on what everything does. Thanks! Color Replace - seems to do different actions. Also all links are broken, and download leads to topic where there isn't a copy of plugin available. The link correctly takes you to the thread for Jesse Chunn's plugin pack which contains the plugin. The downloadable ZIP is the very first link in the thread - and it downloads fine (I checked!) 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...
Rick Brewster Posted August 8, 2012 Share Posted August 8, 2012 Paint.NET doesn't provide any extra Clipboard functionality for plugins, and I would not support or allow (at this time) using its internal ClipboardUtil class for a plugin, or the MaskedSurface data type for accessing the selection geometry. At some point in the magical future I'd love to tidy these up such that plugins as well as other applications could handle them, but there just isn't any time for that just yet. Quote The Paint.NET Blog: https://blog.getpaint.net/ Donations are always appreciated! https://www.getpaint.net/donate.html Link to comment Share on other sites More sharing options...
YellowAfterlife Posted September 3, 2014 Author Share Posted September 3, 2014 Paint.NET doesn't provide any extra Clipboard functionality for plugins, and I would not support or allow (at this time) using its internal ClipboardUtil class for a plugin, or the MaskedSurface data type for accessing the selection geometry. At some point in the magical future I'd love to tidy these up such that plugins as well as other applications could handle them, but there just isn't any time for that just yet. It has been a little while. Has anything changed? Or does one still need to add a text field (for specifying image path) just for transparency support? Quote it would seem like I cannot remove a signature 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.