-
Posts
15,721 -
Joined
-
Last visited
-
Days Won
405
Everything posted by BoltBait
-
Press enter after each letter?
-
Look on your desktop for a file called pdncrash.log and post the contents of that file here.
-
Like this:
-
Brilliantly done!
-
Please read the forum rules: Then, tell me now many of them you broke in your first post.
-
Scalable WMF is a vector format. Paint.NET is a bitmap editor. ... There's a major disconnect in there somewhere.
-
Newbie needs Help With Circular Text
BoltBait replied to Bodeen27's topic in Paint.NET Discussion and Questions
Try this plugin: -
The reason for this is simple: Paint.NET will always default so that you will not lose data. PNG is lossless (you will not lose data no matter how many times you open/save the file). JPG is not. Even at 100% quality, opening and saving a JPG file will lose quality with every iteration. It is like making a copy of a copy on a photocopier... it starts looking ugly very quickly. If you don't care about quality, Paint.NET may not be the photo editor for you. Rick has stated in the past that this will not be changed. Therefore, I'm closing this post as "Question Answered".
-
Need help identifying a font
BoltBait replied to BoltBait's topic in Paint.NET Discussion and Questions
Thanks guys! -
Anyone know what font was used to create this logo?
-
Gradient filler?
BoltBait replied to Kittie Kat Storm2's topic in Paint.NET Discussion and Questions
Read this: -
That behavior is documented here: http://www.boltbait.com/pdn/CodeLab/help/overview.asp Nice job finding a solution to this "random" issue.
-
Yeah, using the following code, I'm seeing vertical stripes too: #region UICode byte Amount1 = 0; // [255] Reseed #endregion void Render(Surface dst, Surface src, Rectangle rect) { ColorBgra CurrentPixel = ColorBgra.Black; byte shade; for (int y = rect.Top; y < rect.Bottom; y++) { for (int x = rect.Left; x < rect.Right; x++) { shade = (byte)RandomNumber.Next(256); CurrentPixel.R = shade; CurrentPixel.G = shade; CurrentPixel.B = shade; CurrentPixel.A = (byte)255; dst[x,y] = CurrentPixel; } } } I'm not sure what's causing them. Building as a DLL, CodeLab is generating the following code: // Compiler options: /unsafe /optimize /debug- /target:library /out:"C:\Program Files\Paint.NET\Effects\RandomTest.dll" using System; using System.Text; using System.Reflection; 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("RandomTestPlugin")] [assembly: AssemblyDescription("RandomTest Plugin for Paint.NET. (Compiled by Code Lab v1.6)")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("RandomTestPlugin")] [assembly: AssemblyCopyright("Copyright © ")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] [assembly: ComVisible(false)] [assembly: AssemblyVersion("1.0.*")] namespace RandomTestEffect { public class PluginSupportInfo : IPluginSupportInfo { public string Author { get { return ""; } } 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.getpaint.net/redirect/plugins.html"); } } } [PluginSupportInfo(typeof(PluginSupportInfo), DisplayName = "RandomTest")] public class RandomTestEffectPlugin : PropertyBasedEffect { public static string StaticName { get { return "RandomTest"; } } public static Image StaticIcon { get { return null; } } public RandomTestEffectPlugin() : base(StaticName, StaticIcon, null, EffectFlags.Configurable) { instanceSeed = unchecked((int)DateTime.Now.Ticks); } public enum PropertyNames { Amount1 } [ThreadStatic] private static Random RandomNumber; private int randomSeed; private int instanceSeed; protected override PropertyCollection OnCreatePropertyCollection() { List<Property> props = new List<Property>(); props.Add(new Int32Property(PropertyNames.Amount1, 0, 0, 255)); return new PropertyCollection(props); } protected override ControlInfo OnCreateConfigUI(PropertyCollection props) { ControlInfo configUI = CreateDefaultConfigUI(props); configUI.SetPropertyControlValue(PropertyNames.Amount1, ControlInfoPropertyNames.DisplayName, string.Empty); configUI.SetPropertyControlType(PropertyNames.Amount1, PropertyControlType.IncrementButton); configUI.SetPropertyControlValue(PropertyNames.Amount1, ControlInfoPropertyNames.ButtonText, "Reseed"); return configUI; } protected override void OnSetRenderInfo(PropertyBasedEffectConfigToken newToken, RenderArgs dstArgs, RenderArgs srcArgs) { this.Amount1 = (byte)newToken.GetProperty<Int32Property>(PropertyNames.Amount1).Value; randomSeed = Amount1; base.OnSetRenderInfo(newToken, dstArgs, srcArgs); } protected override unsafe void OnRender(Rectangle[] rois, int startIndex, int length) { if (length == 0) return; RandomNumber = GetRandomNumberGenerator(rois, startIndex); for (int i = startIndex; i < startIndex + length; ++i) { Render(DstArgs.Surface,SrcArgs.Surface,rois[i]); } } private Random GetRandomNumberGenerator(Rectangle[] rois, int startIndex) { Rectangle roi = rois[startIndex]; return new Random(instanceSeed ^ (randomSeed << 16) ^ (roi.X << 8) ^ roi.Y); } #region User Entered Code #region UICode byte Amount1 = 0; // [255] Reseed #endregion void Render(Surface dst, Surface src, Rectangle rect) { ColorBgra CurrentPixel = ColorBgra.Black; byte shade; for (int y = rect.Top; y < rect.Bottom; y++) { for (int x = rect.Left; x < rect.Right; x++) { shade = (byte)RandomNumber.Next(256); CurrentPixel.R = shade; CurrentPixel.G = shade; CurrentPixel.B = shade; CurrentPixel.A = (byte)255; dst[x,y] = CurrentPixel; } } } #endregion } } As you can see, only one random number generator is created for the entire canvas. So, I'm not sure why the stripes exist. I sent a PM to Ed to see if he can spot the issue.
-
I had the same problem with random numbers, so I added support right into CodeLab for them. Try it this way instead: #region UICode ColorBgra Amount1 = ColorBgra.FromBgr(255,255,0); // Base Color byte Amount2 = 0; // [255] Reseed #endregion void Render(Surface dst, Surface src, Rectangle rect) { ColorBgra CurrentPixel; for (int y = rect.Top; y < rect.Bottom; y++) { for (int x = rect.Left; x < rect.Right; x++) { CurrentPixel = src[x,y]; if (RandomNumber.Next(255) > 128) { CurrentPixel = Amount1; } else { CurrentPixel.R = (byte)RandomNumber.Next(256); CurrentPixel.G = (byte)RandomNumber.Next(256); CurrentPixel.B = (byte)RandomNumber.Next(256); } CurrentPixel.A = (byte)255; dst[x,y] = CurrentPixel; } } } This is described at the bottom of this page: http://www.boltbait.com/pdn/CodeLab/help/uielements.asp
-
Just so you know, this plugin does not replace Paint.NET printing functionality. It adds a new printing function under the Effects menu.
-
Filling a shape with gradient color
BoltBait replied to OCFR's topic in Paint.NET Discussion and Questions
Outline a shape using the selection tools: , or . Click the Gradient tool: Choose your primary and secondary colors. Draw your gradient which is now bound by the shape of your selection. -
What? GIF needs to be flattened?
BoltBait replied to scratchyoshi's topic in Paint.NET Discussion and Questions
Actually, pyro, there is a way to store layers in a GIF file (according to the spec). However, I've never seen a software program that supports it. -
More than likely, it was you trying to paint outside of the current selection.
-
[photo] how to make dark image nice looking?
BoltBait replied to BoBo's topic in Paint.NET Discussion and Questions
Try this plugin: http://forums.getpaint.net/index.php?showtopic=5578 -
New Desktop Computer Build
BoltBait replied to FrankieFourFingers's topic in Paint.NET Discussion and Questions
You don't mention what OS you're considering, but you'll want Windows 7. Also... Personally, I think you'd be happier with an intel i3 or i5 processor. But, that's just me. -
Here is another tip for you: Place the text on its own layer. Duplicate the text layer. (That should help the look of the text.) If that helped, but it doesn't help enough, duplicate that layer again.
-
I'll contact the author and see if he'll post it again.
-
Shrinking image not losing quality
BoltBait replied to FallenAnjel's topic in Paint.NET Discussion and Questions
The printing company that will be making the poker chips for you will want the larger image. Let them do the scaling for you. -
Ink Sketch Effect Plugin - Now with Source Code!
BoltBait replied to BoltBait's topic in Plugins - Publishing ONLY!
Start a thread for your idea here: http://forums.getpaint.net/index.php?/forum/17-plugin-developers-central/ and we'll all see if we can help you. I'm sure what you want can be done, it just may not be possible in CodeLab. -
Nope. Mine's bloody potato.