MadJik

Members
  • Content count

    2,113
  • Joined

  • Last visited

  • Days Won

    6

MadJik last won the day on January 5

MadJik had the most liked content!

Community Reputation

29

About MadJik

  • Birthday 08/26/1964

Profile Information

  • Gender
    Male
  • Location
    Lille;France
  1. Hi, I've checked the links. Everything is ok for download. Read the post of IRON67 and/or try with another browser
  2. I like this kind of comment. Thx
  3. You could fill the layer with a white color and use blend mode or use a transparent background not at 0 but at 1... Full transparancy is not handled. This is the source code you could adapt with the codelab. // Title: Donut distortion // Name: Donut // Author: 2012 MadJik (Jean-Claude Jay) // Submenu: Distort // URL: http://forums.getpaint.net/index.php?showtopic=7186 // Version 1.2 #region UICode int Amount1 = 300; // [0,1000] External radius int Amount2 = 100; // [0,1000] Internal Radius bool Amount3 = false; // [0,1] Unit : Off=pixels, On=x/1000 of smallest side double Amount4 = 10; // [-360,360] Distortion angle int Amount5 = 2; // [0,5] Quality (AntiAlias) int Amount6 = 0; // [0,100] Highlight double Amount7 = 0; // [-1,1] Phase Pair<double, double> Amount8 = Pair.Create( 0.0 , 0.0 ); // Offset Blue int Amount9 = 100; // [0,100] Effect Mix byte Amount10=0; // Mode|Soft|Medium|Hard|Distroy #endregion public const double FULL_PI = 3.14159265358979323846; public const double DEUX_PI = FULL_PI * 2.0; public const double DEGR_PI = FULL_PI / 180.0; public float t = 0; public float ph = 0; ColorBgra EffectMix(ColorBgra dstpix, ColorBgra srcpix, double intensity) { dstpix.R = (byte)(dstpix.R * intensity + (1.0 - intensity) * srcpix.R); dstpix.G = (byte)(dstpix.G * intensity + (1.0 - intensity) * srcpix.G); dstpix.B = (byte)(dstpix.B * intensity + (1.0 - intensity) * srcpix.; return dstpix; } float Inlight(float x, float y, float ri, float re, float rm, float d) { if ((d >= ri) || (d <= re)) { d -= ri; float dist = (float)Math.Sqrt(d); float angle = dist * t - ph; float z = (float)(Math.Cos(angle) * (rm - dist)) ; return z; } return 0; } void Render(Surface dst, Surface src, Rectangle rect) { Rectangle selection = EnvironmentParameters.GetSelection(src.Bounds).GetBoundsInt(); int sL = selection.Left; int sR = selection.Right; int sT = selection.Top; int sB = selection.Bottom; int sW = sR - sL; int sH = sB - sT; int CenterX = (int)(sW * (1.0 + Amount8.First) / 2.0) + sL; int CenterY = (int)(sH * (1.0 + Amount8.Second) / 2.0)+ sT; // check the smallest amount float radE = Amount1; if (Amount2 > radE) radE= Amount2; float radI = Amount2; if (Amount1 < radI) radI= Amount1; float lm = (float)Amount6 * 0.05f; // radius in ?/00 if (Amount3) { float fullval = sW; if (sH < sW) fullval = sH; float ratio = fullval / 2000.0f; radE = radE * ratio; radI = radI * ratio; } // amount must be different if (radE == radI) radE++; // Light float radM = radE - radI; t = (float)FULL_PI / radM; ph = (float)(Amount7 * DEUX_PI); // calculate the squares float radE2 = radE * radE; float radI2 = radI * radI; // gap between radius float radM2 = radE2 - radI2; //distortion angle (strength) float angle = (float)(Amount4 * DEGR_PI); // Angle int r,g,b,a; double mix = Amount9 / 100.0; ColorBgra tmppix; // Variables for Anti-Aliasing int aaLevel = Amount5; //Anti-Alias level int aaSamples = aaLevel * aaLevel + 1; PointF[] aaPoints = new PointF[aaSamples]; // Init table for AA (don't ask me how it works) for (int s = 0; s < aaSamples; ++s) { double x = (s * aaLevel) / (double)aaSamples; double y = s / (double)aaSamples; x -= (int)x; // RGSS + rotation to maximize AA quality aaPoints[s] = new PointF((float)x - 0.5f, (float)y - 0.5f ); } for (int y = rect.Top; y < rect.Bottom; y++) { for (int x = rect.Left; x < rect.Right; x++) { tmppix = src[x,y]; float rX = (float)(x - CenterX); float rY = (float)(y - CenterY); b = 0; g = 0; r = 0; a = 0; int cptaa = 0; foreach (PointF pt in aaPoints) { float xaa = (float)(pt.X + rX); float yaa = (float)(pt.Y + rY); float tmpR = xaa * xaa + yaa * yaa; if ((tmpR >= radI2) && (tmpR <= radE2)) { float tmp1 = radE2 - radI2; float tmp2 = (tmpR - radI2) / tmp1; // formula on selected mode float w_angle =0; switch (Amount10) { case 0: w_angle = (float)((Math.Cos((1.0f - 2.0f * tmp2) * FULL_PI) + 1.0f) / 2.0f); break; case 1: w_angle = (float)(Math.Sin(tmp2 * FULL_PI)); break; case 2: // circle float tmp3 = (tmp2 - 0.5f) * 2.0f; if (tmp3 == 1.0f) w_angle = 0; else w_angle = (float)(Math.Sqrt(1.0f - tmp3 * tmp3)); break; case 3: // cos w_angle = (float)(Math.Cos(tmp2 * FULL_PI)); break; } float c_angle = (float)Math.Cos(angle * w_angle); float s_angle = (float)Math.Sin(angle * w_angle); float srcX = (float)(CenterX + xaa * c_angle - yaa * s_angle); float srcY = (float)(CenterY + xaa * s_angle + yaa * c_angle); tmppix = src.GetBilinearSampleWrapped(srcX, srcY); if (tmppix.A == 0) tmppix = src[x,y]; float Z = Inlight(xaa, yaa, radI, radE, radM, tmpR); if (Z != 0) { if (Z > 0) { int Light = (int) ((lm * Z) + 0.499f); if (Light > 0) { if (Light > 0xff) { Light = 0xff; } tmppix = ColorBgra.Blend(tmppix, ColorBgra.White, (byte) Light); } } else { int Light = (int) ((lm * -Z) + 0.499f); if (Light > 0) { if (Light > 0xff) { Light = 0xff; } tmppix = ColorBgra.Blend(tmppix, ColorBgra.Black, (byte) Light); } } } cptaa++; r += tmppix.R; g += tmppix.G; b += tmppix.B; a += tmppix.A; } } if (cptaa != 0) { tmppix.R = (byte)(r / cptaa); tmppix.G = (byte)(g / cptaa); tmppix.B = (byte)(b / cptaa); tmppix.A = (byte)(a / cptaa); } if (Amount9 < 100) dst[x,y] = EffectMix(tmppix, src[x,y], mix); else dst[x,y] = tmppix; } } }
  4. Never heard about it, I'll give it a try...
  5. This is the one I thought about... No plugin will do what you could have in mind! But with your mind you could use the existing capabilities of Paint.net and its plugins to achieve what you are looking for. You could draw any H/I checkers (or some Escher lezar) and use the layers to give the colours variation...
  6. Thank you for your PM ! My version of the tile plugin is just playing with more parameters than the original. It is a true x,y calculation without any constraint form. In fact it's like a mix of two curves seen from above. I'm really not able (in skill and in time) to think about your suggestion. BTW if you want me to add I and H to the shape plugin : http://forums.getpaint.net/index.php?showtopic=23498 it is easy, just ask ! Also you could try the plugin "fill with" to paint the canvas this a picture.
  7. Hi, You could try this tuto (advanced user) : http://forums.getpaint.net/index.php?/topic/21485-a-way-to-create-some-tubular-net/?hl=tube In step 03 set the vertical step to 60 instead 15. You could also give a try to this plugin: http://forums.getpaint.net/index.php?showtopic=17292
  8. I've change the link to another address. You could now download my pack.
  9. thank you skullbonz. It is easy to create the setup with Inno Setup http://www.jrsoftware.org/isinfo.php
  10. I would compare paint.net to a toolbox with some standard tools provided and then you can add more specific tools... Have you tried to run my pack with the setup.exe ? Then you should confirm the access to the folder...
  11. Your outline/template isn't good enough for the cutting out. You will loose the part of the image under the line. That's why I suggested to draw the piece (or find a template more usable). Example: There is no gap between each piece of the puzzle.
  12. You should draw the pieces without antialiasing and without lines. They must be filled forms with a different color for each piece. So you won't loose any pixel when you select with the magic wand.
  13. The program folder in windows 7 is Write protected. You could change the rules for the Paint.net folders to give your user all control. After that you should be able to paste the plugins DLL. Or you could try to install Paint.net elsewhere than in the Program folder..
  14. Hi EER, I find the topic number of the Addnoise+ on the old forum, so it might exist. The number is 20315, published/last updated 2007-09-13. It could also be a post as an answer to a discussion, without its own lead post. Anyhow, I have no right to delete topics... AddNoise+ was before the covering slider ratio is added to the built-in effect. It has no longer reason to exist now IMO.
  15. AddNoise+ was before the covering slider ratio is added to the built-in effect. It has no longer reason to exist now IMO.