Jump to content

TechnoRobbo

Members
  • Posts

    1,740
  • Joined

  • Last visited

  • Days Won

    133

Everything posted by TechnoRobbo

  1. Thank you, but I think PDN 4.0's new lasso tool may make this plugin obsolete.
  2. Update v1.7 is now available. I published a Freewarp Tutorial on YouTube: Music by TechnoRobbo
  3. Sigmund Freud vs.Schadenfreude

  4. Thanks Red Hey when are you gonna post Scribble that thing is awesome.
  5. Oh, I see. Forgive me, this was the first video I created for Paint.net. I wasn't as self aware as I was in the latter videos. Copy and paste was achieved with the hot keys. Watch the video again I added some instructions on the left side. Hot Keys I used: CTRL + A - selects all of the image CTRL + C - copies the image CTRL + V - pastes the image into the new layer.
  6. Version 1.5 new interface with larger control surface.
  7. ftlog66 I'm sorry I didnt see this thread earlier- I see from the timestamp that you posted later in the plugin thread, so I hope PDNoob's was sufficient. If you need any more help, please post in the plugins thread - I get a notification on my phone and will know someones waiting for help.
  8. Red, If you still wants to grey out the controls while using a Preset try this code it will only leave reseed active. protected override PropertyCollection OnCreatePropertyCollection() { List<Property> props = new List<Property>(); props.Add(StaticListChoiceProperty.CreateForEnum<PresetStyle>(PropertyNames.PresetStyle, 0, false)); props.Add(StaticListChoiceProperty.CreateForEnum<Back>(PropertyNames.Back, 0, false)); props.Add(StaticListChoiceProperty.CreateForEnum<Fore>(PropertyNames.Fore, 0, false)); props.Add(new DoubleProperty(PropertyNames.Reps, 4, 0, 40)); props.Add(new DoubleProperty(PropertyNames.Lmult, 1, 0, 10)); props.Add(new DoubleProperty(PropertyNames.CrossH, 0, -1.00, 1.00)); props.Add(new DoubleProperty(PropertyNames.Ltone, 0, -1.00, 1.00)); props.Add(new DoubleProperty(PropertyNames.Tfreq, 0, -1.00, 1.00)); props.Add(new Int32Property(PropertyNames.Tbands, 5, 2, 32)); props.Add(new DoubleProperty(PropertyNames.AngLite, 60, 0, 180)); props.Add(new DoubleProperty(PropertyNames.AngDark, 120, 0, 180)); props.Add(new DoubleProperty(PropertyNames.Humanize, 0, 0.00, 1.00)); props.Add(new DoubleProperty(PropertyNames.BTrat, 0, 0, 1)); props.Add(StaticListChoiceProperty.CreateForEnum<Tpriority>(PropertyNames.Tpriority, 0, false)); props.Add(new Int32Property(PropertyNames.ReSeed, 0, 0, 255)); //can I use prop rules here to change the defualt values based on what is selected in 'PresetStyle' enum? List<PropertyCollectionRule> propRules = new List<PropertyCollectionRule>(); propRules.Add(new ReadOnlyBoundToValueRule<object, StaticListChoiceProperty>(PropertyNames.Back, PropertyNames.PresetStyle, PresetStyle.None, true)); propRules.Add(new ReadOnlyBoundToValueRule<object, StaticListChoiceProperty>(PropertyNames.Fore, PropertyNames.PresetStyle, PresetStyle.None, true)); propRules.Add(new ReadOnlyBoundToValueRule<object, StaticListChoiceProperty>(PropertyNames.Reps, PropertyNames.PresetStyle, PresetStyle.None, true)); propRules.Add(new ReadOnlyBoundToValueRule<object, StaticListChoiceProperty>(PropertyNames.Lmult, PropertyNames.PresetStyle, PresetStyle.None, true)); propRules.Add(new ReadOnlyBoundToValueRule<object, StaticListChoiceProperty>(PropertyNames.CrossH, PropertyNames.PresetStyle, PresetStyle.None, true)); propRules.Add(new ReadOnlyBoundToValueRule<object, StaticListChoiceProperty>(PropertyNames.Ltone, PropertyNames.PresetStyle, PresetStyle.None, true)); propRules.Add(new ReadOnlyBoundToValueRule<object, StaticListChoiceProperty>(PropertyNames.Tfreq, PropertyNames.PresetStyle, PresetStyle.None, true)); propRules.Add(new ReadOnlyBoundToValueRule<object, StaticListChoiceProperty>(PropertyNames.Tbands, PropertyNames.PresetStyle, PresetStyle.None, true)); propRules.Add(new ReadOnlyBoundToValueRule<object, StaticListChoiceProperty>(PropertyNames.AngLite, PropertyNames.PresetStyle, PresetStyle.None, true)); propRules.Add(new ReadOnlyBoundToValueRule<object, StaticListChoiceProperty>(PropertyNames.AngDark, PropertyNames.PresetStyle, PresetStyle.None, true)); propRules.Add(new ReadOnlyBoundToValueRule<object, StaticListChoiceProperty>(PropertyNames.BTrat, PropertyNames.PresetStyle, PresetStyle.None, true)); propRules.Add(new ReadOnlyBoundToValueRule<object, StaticListChoiceProperty>(PropertyNames.Tpriority, PropertyNames.PresetStyle, PresetStyle.None, true)); propRules.Add(new ReadOnlyBoundToValueRule<object, StaticListChoiceProperty>(PropertyNames.Humanize, PropertyNames.PresetStyle, PresetStyle.None, true)); return new PropertyCollection(props, propRules); } (post-edited) left out a couple of controls - fixed now.
  9. Try adding this line to this routine: void MyLine2Dest(Surface dest, Surface src, Rectangle rect, int L, double Angle, double Rx, double Ry, int nB, int nG, int nR, int nA) { PdnRegion selectionRegion = EnvironmentParameters.GetSelection(src.Bounds);//add this line and set the pixels like this: if (selectionRegion.IsVisible(Lxi, Tyi)) dest[Lxi, Tyi] = LT; if (selectionRegion.IsVisible(Rxi, Tyi)) dest[Rxi, Tyi] = RT; if (selectionRegion.IsVisible(Lxi, Byi)) dest[Lxi, Byi] = LB; if (selectionRegion.IsVisible(Rxi, Byi)) dest[Rxi, Byi] = RB; Nice Plugin by the way.
  10. Nice! Red you did it again. Even looks good on an old turkey.
  11. My Apologies the "Hold Control to Warp" disappeared from last version. I put it back. (Here's a tip keep holding Control until you save) I've also added a "How It Works" section to the Original Post to make up for my lack of commentary in the sourcs code.
  12. Updated Version 1.1 - adds a Fine Location Control for cursor David & Nurse- Thank You Red - He is , I've seen his Birth Certificate I think someone already warped her...
  13. Motto,Midora and Seerose, Thank you, your comments make all the work worth it.
  14. TechnoRobbo's FreeWarp v1.9.2 TR’s FreeWarp (short for TechnoRobbo’s Freestyle Warp) was designed for the artist to intuitively reshape an image by stretching it’s detail. The math employed was a built from the ground up as deliberate departure from Beier-Neely’s Algorithm and the standard mesh warp, Allowing the stretching to be arbitrary. Version 1.92 adds AutoSave and more internal stuff. Version 1.91 adds an Opacity adjustment and some internal stuff Version 1.9 adds a Warp Curvature adjustment and preview Version 1.8 Fixes Undo Version 1.7.1 Cursor Scaling Fix. Version 1.7 warping within selections. Version 1.6 adds functionality and speed Version 1.5 Re-invents the user interface Version 1.2 Puts back missing Label Version 1.1 Fine Location Control Added FreeWarp Tutorial Tutorial Music by TechnoRobbo Menu: Effects->Distort Left-Click Key to Warp - Save to Keep Warp Old Version 1.5 http://youtu.be/8ZiKjh9dRsI Version 1.1 Video How it Works The Algorithm has 2 distinct parts: 1. Distort the Image 2. Localize Warping ..and 3 distinct parameters. 1. The Origin – where the warp begins 2. The Target – where the warp ends 3. The Minimum Warp Size – the size of the warped area (If you continue to stretch the image beyond this size the algorithm adjusts this parameter) Distort the Image Stretching the image is achieved by dividing the image into parts. The Stretched Side and the Compressed Side. The demarcation point is the Target point. Anything on the Origin side of the Target it stretched from the image border – anything on the opposite side is compressed towards the image border. In the Source Code this is labeled “//reverse mapping”. Localizing the Warp Localizing control of the warp is a simple matter of finding the distance of a pixel to the imaginary line segment created by the Origin Point and the Target Point. In the Source Code this is the “distance” function. The distance is normalized by diving it with the Minimum Warp Size. If the distance between Origin and Target (Pythagorean Theorem) exceeds the Minimum Warp Size the distance is used. Normalizing results (d) is a value between 0 and 1 that is used as the control in a linear interpolation between the Source pixel (uu,vv) and the Target Pixel (x,y). uu = d * x + uu - uu * d; vv = d * y + vv - vv * d; I hope I shed some light on the code for the programmers – I’m sorry if I bored the rest. The Source Code The Plugin TRsFreeWarp.zip
  15. pdnnoob explained it well. Images with transparency need to go on a layer above the background. thanks, noob
  16. All features of the Plugin - now work with 3.511 and 4.0
  17. All features of the Plugin - now work with 3.511 and 4.0
×
×
  • Create New...