Win a copy of Functional Reactive Programming this week in the Other Languages forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

How optimize paintComponent?

 
joan wo
Greenhorn
Posts: 9
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hello,

I'm developing an application that draw a shape over an image and then after clic a button, the application calculate all the points that are into the shape and paint it with the same color as the shape.
I paint the shape in the paintComponent method. My problem is that performance of the application descends dramatically in the moment that have to repaint all this points. How can I increase the performance?

I have the rectangle that includes the shape and I use a byte[] to store the points (1 are into the shape, 0 are out).

Thank's a lot.
 
Craig Wood
Ranch Hand
Pie
Posts: 1535
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Try using the shape to set the clip for the graphics context and then draw the image.

The image pixels that fall inside the clipping shape should be the only ones rendered.
 
Ilja Preuss
author
Sheriff
Posts: 14112
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
And for painting the image in a different color, take a look at the class RGBImageFilter.
 
joan wo
Greenhorn
Posts: 9
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hello,

Thank's a lot for your replies.

I have two doubts:
- In the shape I only have the points of the border of the shape. I have to find all the points of the interior of the shape, is in this process when the process is too slow. How can I use the setClip method to obtain the points of the interior?
- Is possible to call paintComponent (with reapint) only when there are a change on the image. I've tried to do it, but then the shape is not ever repaint it, and disappears.

Thank's.
 
Craig Wood
Ranch Hand
Pie
Posts: 1535
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic