Maison > Java > javaDidacticiel > Pourquoi ma superposition de texte n'apparaît-elle pas correctement sur une image tamponnée ?

Pourquoi ma superposition de texte n'apparaît-elle pas correctement sur une image tamponnée ?

Patricia Arquette
Libérer: 2024-12-02 03:05:28
original
765 Les gens l'ont consulté

Why Doesn't My Text Overlay Appear Correctly on a BufferedImage?

BufferedImage : superposition et retour de texte

Incompréhension des coordonnées de dessin de texte

Dans votre code, le texte n'apparaît pas comme prévu car vous faites référence à de mauvaises coordonnées pour drawString(). Il utilise (x, y) comme ligne de base pour dessiner le caractère le plus à gauche d'une chaîne, et non la position absolue du texte.

Ajustement de la ligne de base du texte

Pour Pour compenser cela, ajustez votre coordonnée y pour tenir compte de la hauteur de la police :

gO.drawString(this.text, this.x, this.y + 12);
Copier après la connexion

Cela suppose que vous utilisez une police avec une ligne de base de 12px. Si nécessaire, vous pouvez ajuster le décalage en conséquence.

Considérations sur le modèle de couleur

Il convient de noter que vous pouvez également rencontrer des incompatibilités dues aux modèles de couleur utilisés dans l'image. Pensez à rendre l'image avec un modèle de couleur approprié, puis à la modifier in situ à l'aide de la méthode ci-dessous :

private BufferedImage process(BufferedImage image) {
    Graphics2D g2d = image.createGraphics();
    // Code to overlay text...
    g2d.dispose();
    return image;
}
Copier après la connexion

Dans cette approche, le texte est dessiné directement sur l'image existante, garantissant ainsi la compatibilité.

Code entièrement corrigé

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 + 12);
    System.err.println(this.text+this.x+this.y);
    return image;
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal