Jump to content

TechnoRobbo

Members
  • Posts

    1,740
  • Joined

  • Last visited

  • Days Won

    131

Everything posted by TechnoRobbo

  1. Motto Maybe this will help Set both point 1 sliders to -1 Set both point 2 sliders to -0.33 Set both point 3 sliders to 0.33 Set both point 4 sliders to 1 This will create a straight even diagonal render. Set both point 1 sliders to First -1 and Second 0 Set both point 2 sliders to First -0.33 and Second 0 Set both point 3 sliders to First 0.33 and Second 0 Set both point 4 sliders to First 1 and Second 0 This will create a straight even horizontal render. Set both point 1 sliders to First 0 and Second -1 Set both point 2 sliders to First 0 and Second -0.33 Set both point 3 sliders to First 0 and Second 0 0.33 Set both point 4 sliders to First 0 and Second 1 This will create a straight even vertical render. Also... Try to imagine all the Points overlapping like this It will help visualize what the points are doing.
  2. I think I know what you mean. The "spread" is added to the "direction" so it always skews it one way - since the rotation is continuous this should not be an issue. below is Red 180° and Blue 175° with a 10° counter-clockwise(anti-clockwise) spread. This looks cool
  3. Im trying to duplicate what you wrote. what settings are you using? V1.3 correct?
  4. try the magic wand set to 25 or so with selection mode on "Add" then when you selected enough under the Adjustment menu use Hue & Saturation
  5. Red, Good Point , found it in the Index - it's part of Madjik's plugins. Color Aberration Author: MadJik Topic: 19513 Allows you to move separately RGB channels in % or in pixels. It could be a used to create 3D pictures. Magical Plugins Megapack. Type: Effect | Released: 27 Jul 2010 | Status: Active DLL Name: coloraberation.dll | Menu: Effects > Color
  6. Here this should give you a pretty good idea of how to play with the Chromatic aberration since it shows you how to create it.
  7. That's my point - you can fix some of the picture but never all of the picture since the effect varies through out the image. Sounds like the gimp tool is a modified red eye reduction recoloring specific sections of the image.
  8. That's actually called Chromatic Aberration. Very noticeable on cameras with small image pickups. Pickups where the image pixel sensors are closer to the size of the circle of confusion (the point where the eye can't tell something is not focused). Larger cameras exhibit it too, but the resolution is so high it's negligible. The effect is most noticeable when the cameras Iris is wide open and the light is bent more (refracted) by the edges of the lens. If you look to the edges of the photo the effect is quite noticeable and in reverse on the opposite sides of the photo. You may be able to reduce the effect by separating the photo into 3 layers, Red Green and Blue. Then shifting them relative to the other. But as I pointed out, the effect reverses as you cross the center of the lens and gets more extreme the farther a part of the image is from the center of the lens.
  9. No it's not a feather. There's no feathering at all. It rejects pixels that don't conform to a straight edge definition. Actually I don't have good lasso control the Str8Edge tool corrected my coffee-fueled mess.
  10. How it Works The tool examines each pixel twice. First it looks for the tell-tale pattern of an edge. Then it looks for the tell-tale pattern of a straight edge. An edge is found when an adjacent pixel being transparent. a straight edge is found when the sum of the adjacent pixels alpha is equal or higher than 1275! If the pixel is not partof a straight edge - it's removed. Why 1275? a Opaque pixel has a Alpha value of 255. 1275 is 255 times 5. The tool allows for 20 consecutive passes.
  11. TR's Str8Edge Tool V1.1 Smooths out jagged edges on a Cut-Out. (For those of use who's hands are not that steady) Version 1.1 Updated for Paint.net 4.0 Menu: Effects->Object Deselect before using. YouTube Example Composite of tiger done with Lasso and Str8Edge tool. No Edge Feathering!!! (Minimal Cleanup - Hand drawn whiskers) Hand Selected Tiger The Code Hidden Content: // Compiler options: /unsafe /optimize /debug- /target:library /out:"C:\Program Files\Paint.NET\Effects\TRsStr8Edge.dll" using System; using System.Text; using System.Windows; using System.Reflection; using System.Windows.Forms; using PaintDotNet; using PaintDotNet.Effects; using PaintDotNet.IndirectUI; using PaintDotNet.PropertySystem; using System.Collections.Generic; using System.Drawing; using System.Drawing.Text; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; [assembly: AssemblyTitle("TRsStr8EdgePlugin")] [assembly: AssemblyDescription("TRsStr8Edge Plugin for Paint.NET. (Compiled by Code Lab v1.8)")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("TechnoRobbo")] [assembly: AssemblyProduct("TRsStr8EdgePlugin")] [assembly: AssemblyCopyright("Copyright © TechnoRobbo")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] [assembly: ComVisible(false)] [assembly: AssemblyVersion("1.1.*")] namespace TRsStr8EdgeEffect { public class PluginSupportInfo : IPluginSupportInfo { public string Author { get { return "TechnoRobbo"; } } public string Copyright { get { return ((AssemblyCopyrightAttribute)base.GetType().Assembly.GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false)[0]).Copyright; } } public string DisplayName { get { return ((AssemblyProductAttribute)base.GetType().Assembly.GetCustomAttributes(typeof(AssemblyProductAttribute), false)[0]).Product; } } public Version Version { get { return base.GetType().Assembly.GetName().Version; } } public Uri WebsiteUri { get { return new Uri("http://www.technorobbo.com"); } } } [PluginSupportInfo(typeof(PluginSupportInfo), DisplayName = "TRsStr8Edge")] public class TRsStr8EdgeEffectPlugin : PropertyBasedEffect { public static string StaticName { get { return "TR's Str8 Edge"; } } public static Image StaticIcon { get { return null; } } public TRsStr8EdgeEffectPlugin() : base(StaticName, StaticIcon, "Object", EffectFlags.Configurable) { } public enum PropertyNames { Amount1 } protected override PropertyCollection OnCreatePropertyCollection() { List<Property> props = new List<Property>(); props.Add(new Int32Property(PropertyNames.Amount1, 1, 1, 20)); return new PropertyCollection(props); } protected override ControlInfo OnCreateConfigUI(PropertyCollection props) { ControlInfo configUI = CreateDefaultConfigUI(props); configUI.SetPropertyControlValue(PropertyNames.Amount1, ControlInfoPropertyNames.DisplayName, "Amount"); return configUI; } bool noskip = true; protected override void OnSetRenderInfo(PropertyBasedEffectConfigToken newToken, RenderArgs dstArgs, RenderArgs srcArgs) { this.Amount1 = newToken.GetProperty<Int32Property>(PropertyNames.Amount1).Value; noskip = true; base.OnSetRenderInfo(newToken, dstArgs, srcArgs); } protected override void OnCustomizeConfigUIWindowProperties(PropertyCollection props) { // Change the effect's window title props[ControlInfoPropertyNames.WindowTitle].Value = "TR's Str8 Edge - V 1.1"; base.OnCustomizeConfigUIWindowProperties(props); } protected override unsafe void OnRender(Rectangle[] rois, int startIndex, int length) { if (length == 0) return; for (int i = startIndex; i < startIndex + length; ++i) { Render(DstArgs.Surface, SrcArgs.Surface, rois); } } #region User Entered Code // Submenu: Object // Name: TR's Str8 Edge // Title: TR's Str8 Edge - V 1.1 // Author: TechnoRobbo // URL: http://www.technorobbo.com #region UICode int Amount1 = 1; // [1,20] Amount #endregion void Render(Surface dst, Surface src, Rectangle rect) { if (noskip) { Rectangle sel = EnvironmentParameters.GetSelection(src.Bounds).GetBoundsInt(); dst.CopySurface(src, sel.Location, sel); noskip = false; try { ColorBgra CP = new ColorBgra(); int[] offx = { -1, 0, 1, -1, 1, -1, 0, 1 }; int[] offy = { -1, -1, -1, 0, 0, 1, 1, 1 }; byte[,] agrid = new byte[sel.Width, sel.Height]; byte[,] bgrid = new byte[sel.Width, sel.Height]; //================================================= for (int oy = sel.Top; oy < sel.Bottom; oy++) { for (int ox = sel.Left; ox < sel.Right; ox++) { CP = src.GetBilinearSampleClamped(ox, oy); bgrid[ox, oy] = (byte)((CP.A == 0) ? 0 : 255); } } //--------------------------------------------------- for (int z = 0; z < Amount1; z++) { Array.Copy(bgrid, agrid, agrid.Length); for (int y = sel.Top; y < sel.Bottom; y++) { for (int x = sel.Left; x < sel.Right; x++) { if (agrid[x, y] != 0) { int Threshold = 255; int Sigma = 0; for (int i = 0; i < 8; i++) { int nx = Int32Util.Clamp(offx + x, 0, sel.Width - 1); int ny = Int32Util.Clamp(offy + y, 0, sel.Height - 1); Threshold = Math.Min(agrid[nx, ny], Threshold); Sigma += agrid[nx, ny]; } if (Threshold == 0) { CP = src.GetBilinearSample(x, y); if (Sigma >= 1275) { CP.A = 255; } else { CP.A = 0; bgrid[x, y] = 0; } dst[x, y] = CP; } } //if } //x } //y } } catch (Exception e) { } } else { ColorBgra CP = dst[0, 0]; dst[0, 0] = CP; } } #endregion } } TRsStr8Edge.zip
  12. I came up with a solution that works on the Alpha Channel - Deselect before applying. Note it's menu is Effects->Object If anyone thinks it has merit I will post it as a bonafide plugin. This plugin is not fond of corners. Posted it anyways TR's Str8Edge Plugin V1.0
  13. I'm curious. From a plugin point of view, I assume you would plot the outline and do successive interpolations. Do you have a specific example to test on?
  14. Updated to V4.51 to solve a Window's C# issue. For you programmers out there, here's a heads up: If you add 255 together 9 times using a double-precision variable and then divide by 9 you do not get 255. 255 is fully opaque. Silly Microsoft.
  15. Skull, Displacement with intensity turned all the way own. http://forums.getpaint.net/index.php?/topic/26553-trs-displacement-map-3d-version-20/
  16. V 4.5 added to OP (Original Post) and PluginPak Edges are more refined and as light increase in speed.
  17. Yellow - thank you - I was able to reproduce it using your instructions. Multithreading render using too many open bitmaps. I've changed it to dispose of every bitmap as soon as a frame renders. To All Uploaded V1.2 as of now!!!!!! Give it your worst. Thanks again Yellowman.
  18. Welsh No it wasn't your fault. Large images may slow it down but shouldn't under any cirucumstances crash PDN. That's why I had to put safe gaurds in V1.1. I assume you're now using V1.1. I'm glad all is fine now- Please keep me posted if you have any further issues or suggestions. Looking forward to more of your awesome art work.
  19. infinitus simiae

  20. Infinite monkeys, infinite typewriters

  21. You don't have to hunt for them, just look in the Plugin Pack Section http://forums.getpaint.net/index.php?/forum/44-plugin-packs/ It's the first pack that's not pinned.
  22. Very nice - It looks real. One interesting factoid. Coquin does not add color to the picture it subtracts the complimentary colors simulating what a real photographic filter would does. (That sounded good. I'll add it to the description in the OP)
×
×
  • Create New...