2011-07-27 15 views
1

J'utilise la bibliothèque JAI pour effectuer des ajustements sur une série d'images d'une taille d'environ 1300x1000. J'ajuste les intensités de pixels avec "Rescale" et j'ajoute du texte et des lignes avec l'objet Graphics2D de la méthode TiledImage.createGraphics(). Ensuite, je redimensionne l'image pour qu'elle corresponde à l'écran avec "subsampleaverage" et restitue l'image avec Graphics2D.drawRenderedImage(). Jusqu'à présent, il y a peu de ralentissement, le rendu prenant environ 40 à 60 millisecondes. Cependant, si j'ajoute seulement le texte et les lignes, l'affichage ralentit à 100-200 millisecondes. Je n'arrive pas à comprendre pourquoi, en ajoutant le texte après ou avant d'ajuster les intensités de pixels, c'est bien.JAI Goulots d'ajustement d'image

J'ai parcouru le site, mais je n'arrive pas à trouver de réponse concrète. De nombreuses suggestions ont été d'utiliser BufferedImages, mais la conversion de PlanarImages en BufferedImages semble également avoir un problème de ralentissement.

+0

Pour toute personne ayant ce problème, je suggère d'utiliser JOGL pour l'affichage et le redimensionnement. Après avoir manipulé JAI et JOGL, j'ai réussi à résoudre la plupart des problèmes de ralentissement. – ddukki

Répondre

1

Apparemment, le texte est rendu très lentement en Java. Les glyphes de chaque objet doivent être rendus et peints sur l'objet Graphics. Avec beaucoup de texte sur l'objet, l'objet Font ainsi que tous les Glyphs utilisés sont recréés, provoquant un ralentissement massif.

Même en utilisant JOGL, il y a un ralentissement significatif. Mais en utilisant le même objet TextRenderer atténue cela en créant un seul objet Font et en le réutilisant tant que le TextRenderer est vivant. Bien sûr, cela vous empêche d'utiliser plusieurs objets Font, car JOGL n'a pas encore implémenté une fonction setFont, vous demandant de créer un nouvel objet TextRenderer pour chaque nouvelle police, style de police et poids de police.

J'espère que cela aidera tous ceux qui ont des problèmes similaires.

Questions connexes