Jump to content

Layering and Drawing techniques used in Paint.NET


iosys
 Share

Recommended Posts

Since the thread I replied to just got locked (it was only on the second page and no answer was given to the op, so I don't see the problem), here it is again as a brand spankin new topic! :roll:

I would really like to know this. I've been developing a multi-page tiff editor which currently has a working pencil, text tool, color picker, form/image coordinate spaces, etc. It is usable in it's current state, but not perfect. All edits are done by creating a graphics object out of the loaded image and drawing to that.

The text tool works by calling drawstring() on the graphics object every time the user types a character, but when the user backspaces and types again it just overlaps with more text. I figured I would need to implement a layer system like Photoshop has, and it sounds easy enough. It seems like you could just create a new transparent bitmap for each layer with the same size as the original image, and then render them all together in order to a picturebox. I have tried this and it's very slow.

My pencil tool does not create a consistent stroke, it stutters with gaps inbetween. It just draws a square using fillrectangle() whenever the mouse moves, but there's obviously a sync issue with the mouse and the picturebox painting, or something else that causes the stroke to have gaps.

I came here thinking I might find some examples of the inner workings of Paint.NET to give me a clue about some better techniques I could use in my own program. I would greatly appreciate it if a Paint.NET dev could come here and talk about it.

Link to comment
Share on other sites

Since the thread I replied to just got locked (it was only on the second page and no answer was given to the op, so I don't see the problem)

The problem was that you didn't read the rules.

9) Don't respond to very old threads. Also known as "reviving" or "resusitating" old/dead threads. Also called "necroposting" (eww). If there has been no discussion in a thread for, say, 3 months ... then it is dead. Do not reply to it -- pretend like it is locked. If you reply to it, then the thread will be immediately locked and your post may be deleted.

Don't expect any sympathy for not reading the rules. They are mandatory reading.

Welcome to the forums anyway!

 

The Doctor: There was a goblin, or a trickster, or a warrior... A nameless, terrible thing, soaked in the blood of a billion galaxies. The most feared being in all the cosmos. And nothing could stop it, or hold it, or reason with it. One day it would just drop out of the sky and tear down your world.
Amy: But how did it end up in there?
The Doctor: You know fairy tales. A good wizard tricked it.
River Song: I hate good wizards in fairy tales; they always turn out to be him.

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.

 Share

×
×
  • Create New...