-
Posts
15,728 -
Joined
-
Last visited
-
Days Won
405
Everything posted by BoltBait
-
Right-Click on the dll in explorer and choose "properties". Look at the bottom of the General tab and see if there is an "unblock" button. If there is, click it, then click OK.
-
[UNOFFICIAL] Paint.NET-Plugin-Pack (PPP)
BoltBait replied to usedHONDA's topic in Paint.NET Discussion and Questions
Would this also be considered a derivative work? -
Paint.NET is getting noticed!
BoltBait replied to barkbark00's topic in Paint.NET Discussion and Questions
That's just jealousy talkin' -
[UNOFFICIAL] Paint.NET-Plugin-Pack (PPP)
BoltBait replied to usedHONDA's topic in Paint.NET Discussion and Questions
The only one I absolutely refuse to let you use is my Halo effect. I would like to publicly appologize for writing that one. Oh, and don't bother putting the arrow one in there either. I have a feeling that the next release of PdN will be able to draw arrows. Will you be including my custom palette file? -
Forget everything you know about programming and start over with C#. And, no, I am not working on this. There just aren't enough hours in a day for me to work on all the projects that interest me. I will let this bounce around in the back of my head for a while and if it bubbles up to the top, I'll let you know.
-
True, but I think barkbark00 was really asking for a better sampling method. Now, if you leave some space around the image before you run the effect, the sampling method should create a sort of antialiasing. The only problem in this case is when the image repeats.
-
[UNOFFICIAL] Paint.NET-Plugin-Pack (PPP)
BoltBait replied to usedHONDA's topic in Paint.NET Discussion and Questions
Um... run a contest. -
Rick already told you... Use src.GetBilinearSample(srcXd, srcYd); int Amount1=0; //[-200,200]Horizontal cylinder factor int Amount2=0; //[-200,200]Vertical cylinder factor void Render(Surface dst, Surface src, Rectangle rect) { PdnRegion selectionRegion = EnvironmentParameters.GetSelection(src.Bounds); Rectangle selection = this.EnvironmentParameters.GetSelection(src.Bounds).GetBoundsInt(); float RadiusY =(float)Amount1 / 100.0f; float RadiusX =(float)Amount2 / 100.0f; long SizeX = (long)(selection.Right - selection.Left); long SizeY = (long)(selection.Bottom - selection.Top); long CenterX = (long)((SizeX / 2.0f)+selection.Left); long CenterY = (long)((SizeY / 2.0f)+selection.Top); for(int y = rect.Top; y { for (int x = rect.Left; x { if (selectionRegion.IsVisible(x, y)) { float AngleY = (float)Math.Asin(2.0f*(float)(y - CenterY)/(float)SizeY); float srcXd = (float)(Math.Cos(AngleY) * RadiusY * CenterY)+x; if (srcXd if (srcXd > SizeX) srcXd-=SizeX; float AngleX = (float)Math.Acos(2.0f*(float)(x - CenterX)/(float)SizeX); float srcYd = (float)(Math.Sin(AngleX) * RadiusX * CenterX)+y; if (srcYd if (srcYd > SizeY) srcYd-=SizeY; dst[x,y] = src.GetBilinearSample(srcXd, srcYd); } } } }
-
[UNOFFICIAL] Paint.NET-Plugin-Pack (PPP)
BoltBait replied to usedHONDA's topic in Paint.NET Discussion and Questions
I tried to go to the link directly and IE told me that I needed to login to the web site to see the image (403 error). UH, I would say, slow down. Do it right. Don't be in a rush to push something substandard out the door. People will wait. Along with what Rick said, it should detect if PdN is running and warn you to close it before attempting to install plugins. -
[UNOFFICIAL] Paint.NET-Plugin-Pack (PPP)
BoltBait replied to usedHONDA's topic in Paint.NET Discussion and Questions
A red X. I like it. -
[UNOFFICIAL] Paint.NET-Plugin-Pack (PPP)
BoltBait replied to usedHONDA's topic in Paint.NET Discussion and Questions
It depends. If you just zip everything up... no. If you make a real professional installer... sure. -
[UNOFFICIAL] Paint.NET-Plugin-Pack (PPP)
BoltBait replied to usedHONDA's topic in Paint.NET Discussion and Questions
That's on BoltBait.com (which hasn't been updated). Check here: http://boltbait.googlepages.com/ -
how would you guys make my pictures better?
BoltBait replied to painter2000's topic in Paint.NET Discussion and Questions
The checkerboard pattern lets you know that the area is transparent (when saved as a GIF or PNG file). -
how would you guys make my pictures better?
BoltBait replied to painter2000's topic in Paint.NET Discussion and Questions
When using the line/curve tool :LineCurveTool: be sure to right-click and drag the middle points of the line in order to turn it into a Bezier curve. This will give you a smoother curve to your line. -
The Pictorium! Post your created or edited images here!
BoltBait replied to aatwo's topic in The Pictorium
Yeah, needs more Feather plugin. -
That is true... except for irregular selections. If you don't check, you'll get issues like this: Which I ran across when developing the Gradient plugin that I wrote. Besides, you're the one that gave me the code in the first place.
-
[UNOFFICIAL] Paint.NET-Plugin-Pack (PPP)
BoltBait replied to usedHONDA's topic in Paint.NET Discussion and Questions
I would guess: pdnbench, codelab, and the samples that come with codelab? (I don't see Tom's name on the list.) BTW, I've written 16 different plugins... Which ones were you considering using? (FYI, here's the list.) Also, I would encourage you to write an install package instead of a simple zip file. This way, users could select the ones they want and the installer would make sure they were being installed into the proper directory. -
suggestion - symbols on the forum
BoltBait replied to Squ1rrel's topic in Paint.NET Discussion and Questions
As an example, I edited them into this tutorial: http://paintdotnet.12.forumer.com/viewtopic.php?t=3172 -
Soften Portrait Effect Plugin (Updated 2007-05-27)
BoltBait replied to BoltBait's topic in Plugins - Publishing ONLY!
BuzzKill!!!! I'm in ur Paint Dot Net... eatin' ur cookie. -
Visual Studio 2005 - Effect Plugin Template
BoltBait replied to Sepcot's topic in Plugin Developer's Central
You'll need to update your plugin for Paint.NET 3.05. Change all references of PdnLib.dll to PaintDotNet.Core.dll BTW, I would also add references to PaintDotNet.Data.dll so that you can have access to the blending ops. -
Hehe. CodeLab is a C# compiler...
-
How to make realistic rain drops (animation)
BoltBait replied to easybe's topic in Paint.NET Discussion and Questions
Like this: http://paintdotnet.12.forumer.com/viewtopic.php?t=3790 By the way, your sig is really annoying. Make it stop! -
How do you make something Transparent
BoltBait replied to kevin8115's topic in Paint.NET Discussion and Questions
Like this: http://paintdotnet.12.forumer.com/viewtopic.php?t=3172 -
Soften Portrait Effect I'm still learning how to create complex effect filters for Paint.NET. This is the first one that I wrote that combines preexisting effects. After I wrote this one, I did the Ink Sketch effect. The Idea The idea for this plugin came from belman92's post here. I thought that it would be easy to automate the steps that are sometimes used to make portraits look softer and more professional. You can use this on other pictures, but it really is meant for portraits. It adds a little brown to smooth out skin but not too much detail is lost. Here is an example pic of my lovely wife: <snip demonstration photo> The Effect DLL NOTE: This effect is now included in Paint.NET. If you have upgraded to Paint.NET 3.10 or greater, you do not need to download this effect... you already have it! Instructions for Use The best way to use this is to follow these steps: 1. Open your graphic. 2. Click the Effects > Portrait menu. 3. Adjust the sliders for the desired effect. More Info As always, more information can be found here: http://boltbait.googlepages.com/portrait Source Code To understand this code, first read the Ink Sketch thread. Go ahead, I'll wait. Back? OK, here ya go: /* PortraitEffect.cs Copyright (c) 2007 David Issel Contact Info: BoltBait@hotmail.com http://www.BoltBait.com Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ using System; using System.Collections; using System.Drawing; using PaintDotNet; using PaintDotNet.Effects; namespace PortraitEffect { public class EffectPlugin : PaintDotNet.Effects.Effect { public static string StaticName { get { return "Soften Portrait"; } } public static Bitmap StaticIcon { get { return new Bitmap(typeof(EffectPlugin), "EffectPluginIcon.png"); } } private BlurEffect blurEffect = new BlurEffect(); private UnaryPixelOps.Desaturate desaturateOp = new UnaryPixelOps.Desaturate(); private SepiaEffect sepiaEffect = new SepiaEffect(); private BrightnessAndContrastAdjustment bacAdjustment = new BrightnessAndContrastAdjustment(); private UserBlendOps.OverlayBlendOp OverlayOp = new UserBlendOps.OverlayBlendOp(); private UnaryPixelOp levels; public override unsafe void Render(EffectConfigToken parameters, RenderArgs dstArgs, RenderArgs srcArgs, Rectangle[] rois, int startIndex, int length) { ThreeAmountsConfigToken tacd = (ThreeAmountsConfigToken)parameters; float RedAdjust = 1.0f + ((float)tacd.Amount3 / 100.0f); float BlueAdjust = 1.0f - ((float)tacd.Amount3 / 100.0f); AmountEffectConfigToken blurToken = new AmountEffectConfigToken(tacd.Amount1 * 3); BrightnessAndContrastAdjustmentConfigToken bacToken = new BrightnessAndContrastAdjustmentConfigToken(tacd.Amount2, -tacd.Amount2/2); this.blurEffect.Render(blurToken, dstArgs, srcArgs, rois, startIndex, length); this.bacAdjustment.Render(bacToken, dstArgs, dstArgs, rois, startIndex, length); for (int i = startIndex; i < startIndex + length; ++i) { Rectangle roi = rois[i]; for (int y = roi.Top; y < roi.Bottom; ++y) { ColorBgra* srcPtr = srcArgs.Surface.GetPointAddress(roi.Left, y); ColorBgra* dstPtr = dstArgs.Surface.GetPointAddress(roi.Left, y); for (int x = roi.Left; x < roi.Right; ++x) { ColorBgra srcGrey = this.desaturateOp.Apply(*srcPtr); srcGrey.R = Utility.ClampToByte((int)((float)srcGrey.R * RedAdjust)); srcGrey.B = Utility.ClampToByte((int)((float)srcGrey.B * BlueAdjust)); ColorBgra mypixel = this.OverlayOp.Apply(srcGrey, *dstPtr); *dstPtr = mypixel; ++srcPtr; ++dstPtr; } } } } public override EffectConfigDialog CreateConfigDialog() { ThreeAmountsConfigDialog tacd = new ThreeAmountsConfigDialog(); tacd.Text = StaticName; tacd.Amount1Label = "Soften"; tacd.Amount1Minimum = 0; tacd.Amount1Maximum = 10; tacd.Amount1Default = 5; tacd.Amount2Label = "Lighting"; tacd.Amount2Minimum = -20; tacd.Amount2Maximum = 20; tacd.Amount2Default = 0; tacd.Amount3Label = "Warmth"; tacd.Amount3Minimum = 0; tacd.Amount3Maximum = 20; tacd.Amount3Default = 10; return tacd; } public EffectPlugin() : base(StaticName, StaticIcon, true) { } } } Note: This is NOT a codelab script!