Sign in to follow this  
Followers 0
jchunn

Varicose

31 posts in this topic

Download here

Ok, I have spent some time learning the plugin model to prove that plugins can be written for Paint.Net using Visual Basic.Net. Apparently, they can.

I am posting this here in hopes that some of you "gurus" will play with it and make suggestions. I am no graphic artist... I am a programmer, so if anyone finds this effect the least bit useful, I would LOVE to see any creations that use it. Here are a couple of images just to give an idea what it does:

12758_dfe59cc4cfa47038c775e3d3ef34b526

And here is the source (zipped)

PDNPI_IndirectUI.zip

Enjoy,

Jesse Chunn

0

Share this post


Link to post
Share on other sites
Ok, I have spent some time learning the plugin model to prove that plugins can be written for Paint.Net using Visual Basic.Net. Apparently, they can.
They can be programmed in pretty much any .NET language. A quick search coulda told you that :P
0

Share this post


Link to post
Share on other sites
Ok, I have spent some time learning the plugin model to prove that plugins can be written for Paint.Net using Visual Basic.Net. Apparently, they can.
They can be programmed in pretty much any .NET language. A quick search coulda told you that :P

Yes, and I did do that search, and I did find those comments, and I knew it already, being an avid .net programmer... but Rick and some others had suggested that it "should" work in vb.net, so I set out to prove it... just for kicks. I have not seen any posts or plugins saying it had already been done, but I'm sure I could have missed it.

Regards.

0

Share this post


Link to post
Share on other sites
They can be programmed in pretty much any .NET language. A quick search coulda told you that :P

What? :shock: :shock:

You only say this now???

okay now i'm gonna go crazy, how do you do that? omg i'm gonna start making things :D

0

Share this post


Link to post
Share on other sites
EDIT: It will show up in the "Object" submenu.

This should go into the Distort menu, not the Object menu.

BTW, I love this plugin. It is a GREAT way to make "torn" edges.

0

Share this post


Link to post
Share on other sites
This should go into the Distort menu, not the Object menu.
You mean Render, don't you? This plugin doesn't distort the existing pixels, it overwrites them with new information.
0

Share this post


Link to post
Share on other sites
This should go into the Distort menu, not the Object menu.
You mean Render, don't you? This plugin doesn't distort the existing pixels, it overwrites them with new information.

Actually, it "blends" with the existing pixels.

I debated with myself over which menu it should go in, between distort and render... and I see merit to both options, but I am leaning towards distort, only because that is where "Tile Reflection" is, which is probably the closest thing to this plugin among the built in effects.

0

Share this post


Link to post
Share on other sites
here's an eye I made with it

e.png

Awesome. Great use of this plugin. Thanks for posting it.

0

Share this post


Link to post
Share on other sites

Nice effect... Good to have now a source for VB! Thanks.

Some suggestions (ideas):

1. option for horizontal ?

2. can you add the possibility to divide the lines (not only merging)

3. quality slider...

4. random width per line (or variable width)...

5. frequency: low value, less lines, high value more lines, it's more natural in this way IMO.

0

Share this post


Link to post
Share on other sites
Nice effect... Good to have now a source for VB! Thanks.

Some suggestions (ideas):

1. option for horizontal ?

2. can you add the possibility to divide the lines (not only merging)

3. quality slider...

4. random width per line (or variable width)...

5. frequency: low value, less lines, high value more lines, it's more natural in this way IMO.

1. I can do that... it will take a little time to re-think the "top-to-bottom" logic, but not insurmountable. What would REALLY be difficult would be to let the user select an angle, at least given my implementation. Any suggestions on that would be welcome.

2. It can be done... I have actually already given that some thought. Early attempts ran a high likelyhood of "re-merging", so I'll need to give that more thought to see how I can reduce that likelyhood.

3. I'm sure I could look at other plugins to see how others have implemented that... but I am VERY open to suggestions on what quality "means" in this context. Anti-aliasing? Not sure... any advice is appreciated.

4. I had an early version that did that... easy to implement... probably should be optional?

5. Yes, I agree... that will be in any future versions.

Also, I'll probably move it to the distort submenu.

0

Share this post


Link to post
Share on other sites
...

1. I can do that... it will take a little time to re-think the "top-to-bottom" logic, but not insurmountable. What would REALLY be difficult would be to let the user select an angle, at least given my implementation. Any suggestions on that would be welcome.

2. It can be done... I have actually already given that some thought. Early attempts ran a high likelyhood of "re-merging", so I'll need to give that more thought to see how I can reduce that likelyhood.

3. I'm sure I could look at other plugins to see how others have implemented that... but I am VERY open to suggestions on what quality "means" in this context. Anti-aliasing? Not sure... any advice is appreciated.

4. I had an early version that did that... easy to implement... probably should be optional?

5. Yes, I agree... that will be in any future versions.

Also, I'll probably move it to the distort submenu.

1.Horizontal/Vertical and direction (up<-->down, left<-->right) should be great enough

(sss... don't let them think you could add an angle chooser...)

2.The point here is the new branch is too close to the other and so it will 'died' on next line or soon... Perhaps a duration could solve this and give an extra possibility.

Duration: don't change x position for every y and keep the last xVar for few lines...

3.Yes, Anti-Aliasing

4.Or reducing width (from slider value to 0, smoothly from top to bottom...)

5.Ok

Just some more ideas...

0

Share this post


Link to post
Share on other sites
Actually, it "blends" with the existing pixels.

I debated with myself over which menu it should go in, between distort and render... and I see merit to both options, but I am leaning towards distort, only because that is where "Tile Reflection" is, which is probably the closest thing to this plugin among the built in effects.

Well, for the user it "feels" like a render. Tile Reflection really distorts the source, this one creates a new thing without using the source image.

At least it looks that way for me.

0

Share this post


Link to post
Share on other sites
Actually, it "blends" with the existing pixels. . .

Well, for the user it "feels" like a render. Tile Reflection really distorts the source, this one creates a new thing without using the source image.

At least it looks that way for me.

I understand your point... I really do... but even though it may look that way, especially on very dark or very light images... if you look closely, especially when the "width" is on a high setting, you can see that the "source" image is still visible, blended with the output. This is also clear in the code, if you are a coder. I might add an alpha slider (or intensity, or something like that) which would make that much easier to see, and add some flexibility. The source is absolutely a part of the output pixels.

I agree that Tile Reflection clearly "distorts" the source (by moving pixels around), where this plugin simply modifies the pixels in place, which for many might seem to be less of a "distortion" and more of a "render"... that is why I was unsure of where to put it in the menu.

Regards.

0

Share this post


Link to post
Share on other sites

Look at Rick's "Clouds" effect. If you change the "Blending Mode" option it affects the source in a way that doesn't completely replace it. Clouds is in the Render sub-menu.

Your plugin adds a rendered "object" with varying transparency levels over/above the source data.

Distortion plugins generally have an effect on the position of data from the source OR they translate the data from the source based on a calculation which takes into account the original state of the pixels in the source.

Edit:

I'm not trying to troll your thread. I just think that Fisherman's Friend and I have a valid point...

0

Share this post


Link to post
Share on other sites

Edit:

I'm not trying to troll your thread. I just think that Fisherman's Friend and I have a valid point...

Agreed. I have never questioned the fact that your points are valid. In fact, as I mentioned, I debated these same points before I posted the plugin, which is why I stuck it in the "Object" menu, just to avoid cluttering up the top level of the effects menu while I thought it through (I personally dislike having 50 plugins in the top level menu, but maybe thats just me). The only point that I have disagreed with is that the output isn't based on the source... since it is. I really don't care where it goes in the menu system... if anyone actually wants to use it, they will probably be okay with either "distort" or "render" or "object" without too much concern. A nice enhancement for Paint.Net would be to allow the user to organize their own plugins.... but I have bigger fish to fry... so for now, I will put it in the render submenu in any future versions until further notice (right now it is in the distort menu in the current version of the code on my computer, so hopefully I won't forget to change it). If anyone else wants to debate that, I'm all ears, but that is not high on my priority list. Majik made some suggestions that I think require more of my brain cycles :?

Thanks sincerely for the feedback.

0

Share this post


Link to post
Share on other sites

You need to upgrade your CPU (joke)...

Another idea:

As I was updating the Random lines plugin, I found usefull the possibility to keep the lines as they are and play with the width.

So you should add a reseed button in the list of suggestions...

0

Share this post


Link to post
Share on other sites
Another idea:

As I was updating the Random lines plugin, I found usefull the possibility to keep the lines as they are and play with the width.

So you should add a reseed button in the list of suggestions...

I already have that one on my list... good idea. Some properties are easier to edit in place (without reseeding automatically) than others. For example, alpha (which will be called intensity, and you have not seen it yet) will be easy to edit without reseeding. Width is a little more difficult, but possible, compared to frequency, which will be much more difficult (although still remotely possible if I make some relatively major changes).

Right now, however, I am struggling with how to do anti-alias, which is the highest priority, and I have no clue how to do it. Any code that demonstrates that would be helpful... ?

0

Share this post


Link to post
Share on other sites

Try looking at some of the plugins that perform anti-aliasing. Most of them have released their source.

0

Share this post


Link to post
Share on other sites
Try looking at some of the tutorials that perform anti-aliasing. Most of them have released their source.
Do you mean "plugins"?
0

Share this post


Link to post
Share on other sites
Try looking at some of the tutorials that perform anti-aliasing. Most of them have released their source.

Yes, but every plugin other than this one is in C#, thus it would not be easy for him to exactly implement without a C# to VB.net translator, which even then the output is very shaky.

0

Share this post


Link to post
Share on other sites
Try looking at some of the tutorials that perform anti-aliasing. Most of them have released their source.

Yes, but every plugin other than this one is in C#, thus it would not be easy for him to exactly implement without a C# to VB.net translator, which even then the output is very shaky.

I have no problem translating from one to the other... to translate from C# to VB all you have to do is delete the semicolons from the end of each line :lol:

Seriously... I can do the translation... (how do ya think I got this far :) ) but I have looked at a few already, and the ones I have looked at seem to do it in different ways. I have only had time to look at a couple so far... so I'm still looking, but if anyone wants to point me to the best example, that would help. If not, I'll figure it out.

0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0