Jump to content

Perspective Transformation


MJW

Recommended Posts

Custom controls are easily added to plugins made with the Winform template.

Example, Planetoid. It has custom color pickers, double sliders and a really cool roll control. All courtesy of TechnoRobbo.

Link to comment
Share on other sites

I updated the plugin and source code in my initial comment. The new version has three changes. First, I replaced the X and Y Scale controls with Scale and XY Proportion controls. Second, I added optional anti-aliasing using supersampling. Third, I used floats instead of doubles for almost all the calculations. (Sorry, the control points still start off in the center.)

 

I also added some anti-aliasing test images of a checkerboard and grid pattern.

Edited by MJW
Link to comment
Share on other sites

You need a control like this...which I've sent you a copy of ;)

yhsjjie-238.png

Pink control nub has been moved, the others are in their default location.

Link to comment
Share on other sites

Rich Text Effect Plugin seems a VERY VERY useful plugin. It reminds me of text pro1.1

 

You should not expect too much. It's an effect and not a tool. To create something like this as tool you have to hack PAint.NET. And this is not allowed for public usage.

 

It would be a big step already if Rick would allow effects to store data (like the text) in the metadata of the layer.

midoras signature.gif

Link to comment
Share on other sites

text pro1.1is just a plugin not a tool. I do not know how it was created. Works in PDN 3.5.11 but I don't know if it works in PDN 4xx.


 

I see a lot of talented programmers working around photographic effects but are very few who handles to solve problems like the PDN text as we see in text pro1.1 plugin.

PDN is of course a photo editor and is very good (the best, in my opinion) but just for this reason

it needs such a plugin.

Link to comment
Share on other sites

Thanks for the hint, I had no idea about this plugin. Some cool effects. Rich Text is different, more like Worpad, because you can change effects on different parts of the text.

midoras signature.gif

Link to comment
Share on other sites

  • 3 weeks later...

Hello. :)
Just wanted to say that I love this plugin. It has so much versatility. I really hope you continue to work on it and officially release it.
 
Good Feedback
What I like is there are three different ways to help me reshape my object.
The square boxes that have the directional control handles, the sliders, and the numbers.
However, I would probably be fine with only having control handles and the numbers, I'm not sure how much I need the sliders, even though having them is a nice choice (and others might prefer the sliders).

I also like the ability to scale the object and pan the object, which is similar to the functionality of paint.net's Rotate/Zoom. (Menu bar > layers > rotate/zoom)

And the anti-alias option is wonderful. Distorting shapes with other methods tends to make edges ugly, it's so nice to have a way to help keep the shape's edges looking nicer.
 
What could be better?
I do agree with some of the others who have shared their feedback, I wish the UI was a little more user friendly, or at least have the handles in the control boxes set to better default starting positions.
 
I also tried to use the plugin to make a software box, like the box below from this tutorial, but I found it to be surprisingly tricky, and I kept finding myself wanting the bottom corner controls to go further than 1.00 . But maybe I just made things harder than they needed to be since I am still learning the plugin. If someone else wants to have a go at making a box with this plugin and then share the settings, that would be cool.
pdn3_box.png

 

 

Thank you for this plugin, keep up the great work. :)

Link to comment
Share on other sites

Thanks for the feedback, Cc4FuzzyHuggles! I sort of put this plugin on on the back burner, since it seems to do something similar to the built-in Layers Rotate/Zoom (which I was surprisingly unfamiliar with when I wrote the plugin), but I'll try to make a more user-friendly version soon.

 

I like the anti-alias feature too, even though it's imperfect. I wish I could eliminate the moiré patterns that sometimes occur even with anti-aliasing enabled, but unfortunately that's quite difficult to do in a reasonably simple manner, and the problems mostly affect somewhat pathological images, like the checkerboard. I'd also like to reduce the average number of samples per pixel by using an adaptive method that takes into account the number of source pixels per destination pixel, but that may be overkill. If I may be so bold, other plugin writers who use the GetBilinearSample routines might want to look at the super-sampling anti-alias method I used, since it's so simple to implement and works fairly well.

 

I'm undecided whether the anti-alias control should be a checkbox to enable and a separate control for the number of samples-per-pixel, or just a samples-per-pixel control with a choice of "1" to disable. I put in both controls in the beta version to allow easier switching on and off for comparison; I'm not sure that's desirable for the final version. The other advantage to separate controls is that it allows the anti-aliasing to be disabled by default, but have a default of 4-per-side when enabled.

 

If I write my own controls, I'll probably just have the handles and the numerical controls. The handles are good for general alignment, and the numerical controls are good for fine adjustments. Currently, the adjustment precision isn't sufficiently fine to place the corners in the exact positions. It will eventually allow sub-pixel positioning.

 

I'm considering changing the scale and proportion adjustment to a double-slider X and Y scale control to match the Rotate/Zoom function. I'm not sure which is more useful and easier to use.

 

The problem with the control points being limited to -1 to 1 can somewhat be dealt with by using the scale control. The source image is scaled from the center, so scaling the image effectively increases the control range.

Edited by MJW
Link to comment
Share on other sites

@MJW are you checking you Private Messages? I sent you one a few days back.

Link to comment
Share on other sites

Thank you, BoltBait.

 

And thank you, Ego Eram Reputo. Sorry I didn't respond to your message earlier, but I didn't realize I'd gotten it. I'll see what I can do about incorporating your ideas and controls into an improved user interface.

Link to comment
Share on other sites

If you have questions about the custom control or a winform UI, you can reply to that private message.

Tip: to see if you have messages check the envelope icon in the black bar at the top of the forum (to the left of your username). New messages show up as a number in a red speech bubble. Click the envelope or the speech bubble to see your new messages.

Link to comment
Share on other sites

You can also find your messages by clicking on your user name, the one that's up in the top right of these forums in the black bar. When you click that user name or a little down arrow that's next to it, you get several options to click on.

My Profile

My Content

Manage Friends

Personal Messenger

and more.

 

Click the "Personal Messenger" to view your messages.

Edited by Cc4FuzzyHuggles
Link to comment
Share on other sites

Thank you, Cc4FuzzyHuggles. That sounds like a good way to check for and retrieve private messages.  I noticed I had a private message from long ago that I answered, so at one time I was able to get my messages. I seem to recall that when I got that message, I was notified in some way that couldn't even escape my attention.

 

Thank you, Ego Eram Reputo. I'll start looking at your code soon and see if I have any questions (which I likely will).

Edited by MJW
Link to comment
Share on other sites

  • 7 months later...

It hasn't been released yet, I hate to admit. I'll make an effort to do that soon, with, I hope, at least a somewhat better user interface. Writing the user interface was always the hold up.

Link to comment
Share on other sites

  • 1 month later...

I have a new beta version (1.2). It doesn't have a fancy custom positioning control, nice as that might be, but it does have improved corner controls. First, they start in the corners; second, they have 3 decimal places; and third, they can be moved outside the window boundaries. There are other improvements to the plugin as well, such as a Help menu.

 

I'll be glad to listen to any suggestions. Please see the EDIT at the bottom of the original comment for more details, and the ZIP file.

Edited by MJW
  • Upvote 2
Link to comment
Share on other sites

  • 6 months later...

I just came across this plug-in and it's great !

It works perfectly and with very little quality loss when used on photos .  I wish I had this a few months ago ! 

Thank you !  :D

Link to comment
Share on other sites

Thank you, TooOld! I need to make it a released plugin instead of a beta. There's at least one extra feature I'd like to add, but that's not really a good reason to not make it an official release. I can still add new features later if I get ambitious. (I'd also like to make more elegant corner controls, but I doubt that's going to happen soon.)

Link to comment
Share on other sites

  • 5 months later...

I think this is a really neat thing. However, I would need to use it in a different way.

 

I take lots of photos at home of records I collect, buy and (rarely) sell, and usually they come out slightly skewed, which makes cropping them a pain, inevitably at some corner something will get lost.

What I'd really like would be an interface where I could put the four corner markers on the image, in the place where the four corners of the photographed record are, and then have those transformed back into a square. So basically, it would be the opposite of what you're doing now. I know that it should be mathematically possible (even though my last encounter with this kind of stuff was a long time ago). UI-wise, it could be as simple as an "Inverse behaviour"-checkbox ...

 

With the current version I can do this as well, I currently draw a square on a new layer, and then modify the corner parameters of the underlying layer until the record fits into the square. But that's a bit cumbersome to do ...

There are 10 types of people in this world: Those who understand binary, and those who don't ...

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...