-
Posts
1,740 -
Joined
-
Last visited
-
Days Won
133
Everything posted by TechnoRobbo
-
Ego - zero rotation bug fixed and uploaded. I gotta handed to the creativity of the members. Really nice work.
-
A new twist on the Twist. Rotate your image in slices. (The Original twist makes the image unrecognizable.) Video instructions - http://youtu.be/Q6fPxBzQ4w8 This image was done with a round selection. (Mona's one Twisted sister.) Distort -> Layer Cake Bug Fix -Version 1.1 Fixes Zero Rotation Issue 10:38 AM Wednesday, June 12, 2013 (UTC) The Code: Hidden Content: // Submenu: Distort // Name: Layer Cake // Title: Layer Cake - v1.1 // Author: TechnoRobbo // URL: http://www.technorobbo #region UICode double Amount1 = 0;//[-10,10]Rotation double Amount2 = 5;//[1,30]Slices #endregion void Render(Surface dst, Surface src, Rectangle rect) { Rectangle selection = EnvironmentParameters.GetSelection(src.Bounds).GetBoundsInt(); int CenterX = ((selection.Right - selection.Left) / 2)+selection.Left; int CenterY = ((selection.Bottom - selection.Top) / 2)+selection.Top; double radX = (selection.Right - selection.Left) / 2; double radY = (selection.Bottom - selection.Top) / 2; double offrads = 0; double rads = 0; double slices = 0; int newx = 0; int newy = 0; double maxrad = Math.Sqrt(radX * radX + radY * radY); ColorBgra CP; rads= Math.PI * (Amount1 +.001); for (int y = rect.Top; y < rect.Bottom; y++) { for (int x = rect.Left; x < rect.Right; x++) { slices = Math.Sqrt((x-CenterX) * (x-CenterX) + (y-CenterY)* (y-CenterY)) * rads / maxrad; offrads = Math.Truncate(slices / (rads / Amount2)) * (rads / Amount2); newx=CenterX + (int)(Math.Cos(offrads) * (x-CenterX) + Math.Sin(offrads) * (y-CenterY)); newy=CenterY + (int)(Math.Cos(offrads) * (y-CenterY) - Math.Sin(offrads) * (x-CenterX)); CP = src.GetBilinearSampleWrapped(newx,newy); dst[x,y] = CP; } } } Layer Cake.zip
-
Thanks Ego, Fixed
-
Thanks Ego, Fixed
-
Pseudo Greyscale from Pseudo-Random Noise. The plugin takes your color image and de-saturates it by shifting the pixel colors randomly. I included a Span and Offset control to adjust the hue and intensity of the de-saturation, Sorry no video instructions - this ones too easy to use. Under the Effects->Color->Noise Bleacher Bug Fix Version 1,1 Span Zero crash fixed. 1:27 AM Tuesday, June 11, 2013 (UTC) Interesting when zoomed: The Code: Hidden Content: // Submenu: Color // Name: Noise Bleacher // Title: Noise Bleacher - v1.1 // Author: TechnoRobbo // URL: http://www.technorobbo #region UICode int Amount1 = 1; // [1,360] Span int Amount2 = 0; // [0,180] Offset #endregion void Render(Surface dst, Surface src, Rectangle rect) { Random rndm = new Random((int)Guid.NewGuid().GetHashCode()); ColorBgra CP; int tmp =0; for (int y = rect.Top; y < rect.Bottom; y++) { for (int x = rect.Left; x < rect.Right; x++) { CP = src[x,y]; tmp= rndm.Next() % Amount1; HsvColor hsv = HsvColor.FromColor(CP.ToColor()); int H = (hsv.Hue + tmp + Amount2) % 360; int S = hsv.Saturation; int V = hsv.Value; hsv = new HsvColor(H,S,V); ColorBgra NP = ColorBgra.FromColor(hsv.ToColor()); NP.A = CP.A; dst[x,y] = NP; } } } NoiseBleach.zip
-
I agree Ego- it's now in Colors Menu
-
TRs Displacement Map 3D Version 2.1
TechnoRobbo replied to TechnoRobbo's topic in Plugins - Publishing ONLY!
How to make a faux reflection pond with the plug-in: http://youtu.be/1zIqTkgiIbw -
TRs Displacement Map 3D Version 2.1
TechnoRobbo replied to TechnoRobbo's topic in Plugins - Publishing ONLY!
It's only slow when the size of the image doesn't match the size of the map. When it does match the transformation is instant. I wasn't sure whether to call it a bump map or a displacement map. Since both refer to 3D shaders. Perhaps Displacement would be better. Update: I've changed the name and included the recommendation to use same size image and map , I also modified the Youtube tutorial to reflect the changes. Thanks for your help Ego. -
The grayscale of an image copied to the Clipboard modifies your image's pixel locations in 3D space. Endless varieties of can be achieved. Effect->Distort->TRs Displacement Map 3D Version 2.0 added a bunch of fun creative features. Highligth and Shadow Light Source Positioning Color Adjustment Alpha Transparency. Here's the Quick Demo on Youtube: http://youtu.be/VfLRw4wsE2Q Here's the Demo on how to create the 3 Skulls on Youtube: http://youtu.be/aXQeIOBKabk Download: DispMap.zip Here's the code: Old Version:
-
TR's Fish Eye Plugin - Feb. 24, 2015
TechnoRobbo replied to TechnoRobbo's topic in Plugins - Publishing ONLY!
Thank You -
Technorobbo's Fish Eye 2.2 v2.2 adds color cast to highlight and specular control v2.1 fixes a bug in the highlight V2.0 adds shadow, rotation and specular highlight It's not a Bulge Filter. It takes your image, creates a Pixel Cloud then maps it via the Pythagorean theorem. Then renders it using a standard 3D Mapping algorithm. Here is a Youtube tutorial http://youtu.be/DOOwh8ul3gc V2 Demo http://youtu.be/oqaHRlxdARs Here's the code: Hidden Content: // Submenu: Distort // Name: TR's Fish Eye // Title: Fish Eye - v2.2 // Author: TechnoRobbo // URL: http://www.technorobbo.com #region UICode double Amount1 = 0.25; // [0.01,1] Control Pair<double, double> Amount2 = Pair.Create( 0.0 , 0.0 ); // Rotate Pair<double, double> Amount3 = Pair.Create( 0.0 , 0.0 ); // Light Source double Amount4 = 0; // [0,2] Spot Light double Amount5 = 2; // [0,5] Light Intensity double Amount6 = 0; // [0,1.5] Highlight double Amount7 = 1; // [0.01,10] Specularity ColorBgra Amount8 = ColorBgra.FromBgr(0,0,0); // Color Cast #endregion private ColorBgra getblend(int x, ColorBgra a, ColorBgra { UserBlendOp bop = new UserBlendOps.NormalBlendOp(); switch (x) { case 0: bop = new UserBlendOps.NormalBlendOp(); // Normal break; case 1: bop = new UserBlendOps.MultiplyBlendOp(); // Multiply break; case 2: bop = new UserBlendOps.AdditiveBlendOp(); // Additive break; case 3: bop = new UserBlendOps.ColorBurnBlendOp(); // Color Burn break; case 4: bop = new UserBlendOps.ColorDodgeBlendOp(); // Color Dodge break; case 5: bop = new UserBlendOps.ReflectBlendOp(); // Reflect break; case 6: bop = new UserBlendOps.GlowBlendOp(); // Glow break; case 7: bop = new UserBlendOps.OverlayBlendOp(); // Overlay break; case 8: bop = new UserBlendOps.DifferenceBlendOp(); // Difference break; case 9: bop = new UserBlendOps.NegationBlendOp(); // Negation break; case 10: bop = new UserBlendOps.LightenBlendOp(); // Lighten break; case 11: bop = new UserBlendOps.DarkenBlendOp(); // Darken break; case 12: bop = new UserBlendOps.ScreenBlendOp(); // Screen break; case 13: bop = new UserBlendOps.XorBlendOp(); // Xor break; default: bop = new UserBlendOps.NormalBlendOp(); break; } return bop.Apply(a, ; } void Render(Surface dst, Surface src, Rectangle rect) { Rectangle selection = EnvironmentParameters.GetSelection(src.Bounds).GetBoundsInt(); double CenterX = ((selection.Right - selection.Left) / 2)+selection.Left; double CenterY= ((selection.Bottom - selection.Top) / 2)+selection.Top; double offx =0; double offy =0; double rady = (selection.Bottom - selection.Top) / 2; double radx = (selection.Right - selection.Left) / 2; double rotateX=Amount2.First * CenterX; double rotateY=Amount2.Second * CenterY; double sourceX=Amount3.First * CenterX + CenterX; double sourceY=Amount3.Second * CenterY + CenterY; double gamma = Amount5 * 255; double wide=Amount4; double hilite = Math.Pow(Amount6,Amount7); double tmpy =0; double tmpx =0; double z=0; double tmp=0; double zp= Math.Pow((double) Amount1,2) * radx * 8; ColorBgra cast = Amount8;//getblend(12,ColorBgra.White,Amount8); ColorBgra CP; for (int y = rect.Top; y < rect.Bottom; y++) { if (IsCancelRequested) return; tmpy=y-CenterY; tmpx=Math.Sqrt(rady*rady-tmpy*tmpy); for (int x = rect.Left; x < rect.Right; x++) { if (IsCancelRequested) return; double spread = Math.Sqrt(Math.Pow(x - CenterX,2) + Math.Pow(y - CenterY,2)); double Light = Math.Sqrt(Math.Pow(x - sourceX,2) + Math.Pow(y - sourceY,2)) * wide ; Light=(Light>CenterY)?1:Light/CenterY; double hLight = Math.Sqrt(Math.Pow(x - sourceX,2) + Math.Pow(y - sourceY,2)); hLight =(hLight >CenterY)?1:hLight /CenterY; tmp=(double)x-CenterX; z = zp + Math.Sqrt(tmpx*tmpx-tmp*tmp); offx = tmp * zp / z + CenterX + rotateX; tmp=(double)y-CenterY; offy= tmp * zp / z + CenterY + rotateY; CP= src.GetBilinearSampleWrapped((float)offx,(float)offy); double l,lr,lg,lb; lr =(1 - Math.Pow(hLight , hilite)) * cast.R; lr=(lr>255)?255:(lr<0)?0:lr; lg =(1 - Math.Pow(hLight , hilite)) * cast.G; lg=(lg>255)?255:(lg<0)?0:lg; lb =(1 - Math.Pow(hLight , hilite)) * cast.B; lr=(lb>255)?255:(lb<0)?0:lb; ColorBgra CH = ColorBgra.FromBgr((byte)lb,(byte)lg,(byte)lr); CP=getblend(12,CP,CH);//was 12 l= (1 - Math.Sqrt(Light)) * gamma; l=(l>255)?255:(l<0)?0:l; ColorBgra CL = ColorBgra.FromBgr((byte)l,(byte)l,(byte)l); CP=getblend(1,CP,CL); if (spread>(CenterY-1))CP.A=32; if (spread>(CenterY-2))CP.A=128; if (spread>CenterY)CP.A=0; dst[x,y]=CP; } } } Fisheye.zip
-
TR's Edge Fader Extreme V 5.3.5 (June 15th 2014)
TechnoRobbo replied to TechnoRobbo's topic in Plugins - Publishing ONLY!
Gaussian Blur + Compared to Edge Fader I think I classify Edge Fader as a vignetting tool. (Note to self: enough with the horses) -
TR's Edge Fader Extreme V 5.3.5 (June 15th 2014)
TechnoRobbo replied to TechnoRobbo's topic in Plugins - Publishing ONLY!
I'm gonna have to check that one out. Does it work on horses? -
That's a possibillity. I thought that since I'm replacing all colors and messing with the alpha, it really wasn't a color filter of sorts. I don't know. Let me put it out to a vote. What do people think the "natural fit" category is?
-
TR's Edge Fader Extreme V 5.3.5 (June 15th 2014)
TechnoRobbo replied to TechnoRobbo's topic in Plugins - Publishing ONLY!
Yes, this Plug-in actually fades the Alpha inwards from the edges up to 255 Pixels . (Version 1.3 fixes an artifact left at top if selection. Available now.) BoltBaits Feather uses a GaussianBlur on the edges, Here's how he explained it in his tutorial. -
TR's Edge Fader Extreme V 5.3.5 (June 15th 2014)
TechnoRobbo replied to TechnoRobbo's topic in Plugins - Publishing ONLY!
Updated Code handles more complex shapes Version 1.2 -
Excellent Advice - I recompiled and re uploaded the plugin.
-
Please Explain how. Reposted code per Pyrochild's advice. #region UICode int Amount1 = 255; // [0,255] Cyan int Amount2 = 105; // [0,255] Magents int Amount3 = 0; // [0,255] Yellow int Amount4 = 255; // [0,255] Alpha #endregion unsafe void Render(Surface dst, Surface src, Rectangle rect) { int scratch = 0; int tmpval = 0; // Delete any of these lines you don't need 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++) { ColorBgra CurrentPixel = *srcPtr; scratch= (int)((long)CurrentPixel.R + (long)CurrentPixel.G + (long)CurrentPixel. / 3; tmpval=Math.Abs(Amount1-scratch); CurrentPixel.R=(Byte)tmpval; tmpval=Math.Abs(Amount2-scratch); CurrentPixel.G=(Byte)tmpval; tmpval=Math.Abs(Amount3-scratch); CurrentPixel.B=(Byte)tmpval; tmpval=Math.Max(Amount4,scratch); CurrentPixel.A=(Byte)tmpval; *dstPtr = CurrentPixel; srcPtr++; dstPtr++; } } }
-
CMY Ghost is a way to mess with the Color and Alpha create wild effects. Version 1.1- is now in the Color Menu. Instrunction Link: http://youtu.be/Vd2WPemHc3g Program reposted on 3:23 PM Sunday, June 9, 2013 (UTC) CycleHSV allows you to do a per pixel cycle the colors space with Saturation and Brightness as well as Hue. The values roll over with out clamping (a hue of 361 = 1, a saturation of 101 =1 etc). This leads to interesting Posterization effects. Instrunction Link:http://youtu.be/ILS216rYHog CMY Ghost CycleHSV Thank You to Pyrochild for his advice. CMY Ghost.zip CycleHSV.zip
-
TR's Edge Fader Extreme V 5.3.5 (June 15th 2014)
TechnoRobbo replied to TechnoRobbo's topic in Plugins - Publishing ONLY!
Removed Post due to code update making this work around unnecessary. -
TR's Edge Fader Extreme V 5.3.5 (June 15th 2014)
TechnoRobbo replied to TechnoRobbo's topic in Plugins - Publishing ONLY!
Ego Here's a YouTube video I made to explain better Edit : see original Post -
TR's Edge Fader Extreme V 5.3.5 (June 15th 2014)
TechnoRobbo replied to TechnoRobbo's topic in Plugins - Publishing ONLY!
Yellowman, I took your advice and moved it to the selection menu. Good Suggestion - I wasn't sure I could put it there but obviously I can.I replaced the download in the original post. -
TechnoRobbo's Edge Fader Extreme v 5.3.5 (Now called TR's EFX in the menu) I set out to write the fastest, most accurate edge fader out there. It is not a selection tool - it feathers the alpha inwards from the edges. (do not use with a selection) Check out the code! Learn how to increase the speed of your plugins. 5.3.5 Address Small Image Bug 5.1.0 Fade Curves - Plugin Browser Compatible Hidden Content: 5.07 Fixes aspect ratio on preview 5.0.6 diminishes border 5.0.5 Works on very large images 5.0.4 reduced memory usage by 4X 5.0.3 - unbelieveably fast 5.0.1 - 4 Times Faster 5.0.0 Same Algorithm - New Interface with Preview Thumbnail. 4.52 Updated for Paint.net 4.0 4.51 Finer Edges 4.4 Speed, Real Speed 4.3 Edges refined preview turned back 4.2 Enhancement - Adjusts for pre-existing alpha. 4.1 Bug Fix - Large Pictures Selections with no Alpha cause crash. - fixed. 4.0 Re-write - The Need for Speed forced me to write new code to work around the ROI. 3.0 Bug Fix - New Menu -Faster - Adapts to existing Alpha Channel - Resolution Control for Higher Rezimages 2.1 Bug Fix - Streamlined Code More 2.0 Bug Fix - Faster Code 1.4 Bug Fix - Small artifact left at Bottom of selection eliminated. 1.3 Bug Fix - Small artifact left at Top of selection eliminated. Menu: Effects -> Object ->TR's EFX Fade Curves YouTube Tutorial C2ShiningC The VS Source Code https://www.dropbox.com/s/23kwfqretm0fx31/TRsEdgFaderXtremeSrc.zip?dl=0 The Plugin EdgeFader.zip