À l'aide de Graphics2D pour superposer du texte sur une BufferedImage et de retourner une BufferedImage

J'ai vérifié nommé de la même manière à des questions, mais ils ne répondent pas à ce cas d'utilisation.

Essentiellement, j'ai été à la superposition du texte (texte) à un niveau donné de coordonnées (x,y) j'ai le dessous de la fonction dans un paquet;

protected BufferedImage Process2(BufferedImage image){
    Graphics2D gO = image.createGraphics();
    gO.setColor(Color.red);
    gO.setFont(new Font( "SansSerif", Font.BOLD, 12 ));
    gO.drawString(this.text, this.x, this.y);
    System.err.println(this.text+this.x+this.y);
    return image;
}

Je me sens comme im manque quelque chose manifestement évident; chaque référence à Graphics2D je trouve, c'est le traitement de jeux ou en écrivant directement à un fichier, mais je veux juste un BufferedImage retourné. avec l'overlay 'rendu'

Dans le code actuel, l'image s'affiche à la fin inchangé.

Merci!

  • Êtes-vous essayer de modifier un fichier image? Ce que vous faites devrait fonctionner, mais vous êtes seulement de la modification d'une mémoire de la représentation de l'image.
  • Aussi, êtes-vous sûr que x et y sont à l'intérieur de l'image? Essayez de peindre un carré aux coordonnées (0,0) pour un premier test
  • En aparté, c'est à ce moment qu'il convient d'appeler dispose() sur le Graphics2D instance.
  • non, un pré-traitées BufferedImage, aucun fichier de connexion à tout. En gros, j'ai une image de la source, et j'ai complètement distincte de l'entrée de définir où x,y sont, et le texte, donc j'ai littéralement envie de gifler ce texte à ceux coords ontop de la mémoire tampon d'image
  • Je promets que je vais le nettoyer une fois que cela fonctionne 😀
  • Votre texte dessin code fonctionne très bien pour moi. Je pense que le problème est à l'extérieur de la Process2 méthode.

InformationsquelleAutor Bolster | 2010-04-17