java - image rotation method leaves something in the ram -


i working on game , more diversity of graphics want call rotate(bufferedimage imgold, int deg) method few hundred times rotate graphics (eg. tree stumps).

with unrotated graphics never had issues memory. started use rotator error occurred if didn't reduce amount of rotated images drastically (like 95% drastically).

the error occurred inside of rotate(bufferedimage imgold, int deg) method , since started rotate massive amounts of images suppose there must leftovers inside memory rotate(bufferedimage imgold, int deg) method don't know how deal with.

here see code of class rotator:

package movement;  import java.awt.graphics2d; import java.awt.geom.affinetransform; import java.awt.image.bufferedimage;  public class rotator {     public static bufferedimage rotate(bufferedimage imgold, int deg){                                                                              //parameters method image rotate , rate of rotation in degrees         affinetransform @ = affinetransform.getrotateinstance(math.toradians(deg), (int)(imgold.getwidth()/2), (int)(imgold.getheight()/2));       //setting transform         bufferedimage imgnew = new bufferedimage(imgold.getwidth(), imgold.getheight(), imgold.gettype());                                          //creating new image same properties of old 1         graphics2d g = (graphics2d) imgnew.getgraphics();                                                                                           //create graphics         g.settransform(at);                                                                                                                         //applying transform         g.drawimage(imgold, 0, 0, null);                                                                                                            //painting rotated image         return imgnew;                                                                                                                              //return rotated image                   }        } 

i hope has idea , didn't make mistakes (its first question posted here).

your biggest problem simple- you're duplicating every image you're every time rotate. can try draw rotated image onto itself, removing need churn through massive amount of objects garbage collector.

also, if dead-set on making new objects, make sure flush (bufferedimage#flush) old images , dipose (graphics2d#dispose) graphics objects.


Comments

Popular posts from this blog

python - TypeError: start must be a integer -

c# - DevExpress RepositoryItemComboBox BackColor property ignored -

django - Creating multiple model instances in DRF3 -