IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

2D Java Discussion :

zoomer text dans l'image


Sujet :

2D Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1
    Par défaut zoomer text dans l'image
    Bonjour à tous,
    J'ai créé un carré graphique dans lequel je met les texts. Les texts étaient "wrap" dans ce carré, mais, quand je zoome (ou dézoomer) le carré alors le wrapping est aussi changé à cause de la taille de text changé.
    J'ai utilisé Graphics2D pour décrire le carré et mettant le text dedans par le fonction drawString(String, coorX, coorY) comme suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public void drawZoom(Graphics g, int X, int Y, int Width, int Height, String text){
    ...
    setFont(font_size = Height/2);
    ...
     
    g.drawSring(text, 0,Height);
    }
    Mais lors que le carré est zoomé, le wrapping de text est toujours changé. Par example, avec la taille normale de carré alors text est mis sur 2 lignes dans le carré mais quand on le dézoome text est mis sur 1 ligne! Je veux après avoir dézoomé le text est toujours mis sur deux lignes comme avant.

    Svp, donnez moi une solution si possible.
    merci

  2. #2
    Membre Expert
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Par défaut
    Bonjour,

    je ne suis pas sûr d'avoir bien compris ce qui doit grandir et rester à la même taille. Si tu veux que le texte et le carré grandissent ensemble dans les mêmes proportions, tu peux utiliser Graphics2D.scale().

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    int normalWidth;
    int normalHeight;
     
    public void drawZoom(Graphics graphics, int x, int y, int w, int h, String text) {
      Graphics2D g = (Graphics2D) graphics;
     
      double zoomX = w / (double) normalWidth;
      double zoomY = h / (double) normalHeight;
      g.scale(zoomX, zoomY);
     
      // ici tu dessines ton carré et ton texte sans tenir compte du zoom.
      // le carré doit être de taille normalWidth x normalHeight
     
      g.scale(1/zoomX, 1/zoomY);
     
      // ici tu peux dessiner des choses qui ne doivent pas être zoomées
    }
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

Discussions similaires

  1. [Dreamweaver] Modifier texte dans une image
    Par Aspic dans le forum Dreamweaver
    Réponses: 4
    Dernier message: 13/04/2007, 17h17
  2. inserer un texte dans une image
    Par hayate12 dans le forum C++
    Réponses: 11
    Dernier message: 22/03/2007, 13h21
  3. Ecrire du texte dans une image
    Par jeremy13 dans le forum Images
    Réponses: 11
    Dernier message: 22/01/2007, 16h12
  4. [vb.net 1.1] Faire défilé du texte dans une image
    Par malhivertman1 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 09/11/2006, 16h31
  5. Zone de texte dans une image
    Par sanna dans le forum Algorithmes et structures de données
    Réponses: 21
    Dernier message: 18/03/2005, 22h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo