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 :

Lissage précis en java


Sujet :

2D Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 5
    Par défaut Lissage précis en java
    Bonjour,

    je dois essayer de reproduire du lissage précis de photoshop en java.
    Est-ce que quelqu'un saurait comment faire ?

    J'ai une image sur laquelle je dois écrire du texte.
    Je voudrais que ce texte soit lissé de façon précise (comme dans photoshop).
    J'utilise le RenderingHints.KEY_ANTIALIASING à ON.
    Cela lisse bien mon texte, mais le lissage est fort, donc je n'obtiens pas la même chose que sous photoshop.

    Existe-t-il d'autres classes dans java permettant de faire de l'anti-aliasing avec un coéfficient par exemple ?

    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    En ce qui concerne le texte il ne faut pas utiliser KEY_ANTIALIASING, mais KEY_TEXT_ANTIALIASING avec une des différentes valeurs proposées par java

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 5
    Par défaut
    Oui j'ai essayé aussi avec TEXT_ANTIALIASING, mais ça ne change rien, car le fait de mettre ANTIALIASING à ON, et de ne rien préciser pour TEXT_ANTIALIASING, fait qu'il se met à ON par défaut.

  4. #4
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 901
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 901
    Billets dans le blog
    54
    Par défaut
    Quel OS ? Quelle JVM ? Peux-tu nous montrer ton code et une capture montrant la comparaison de l'effet s'il te plait ?
    Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.

    suivez mon blog sur Développez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  5. #5
    Membre à l'essai
    Inscrit en
    Juin 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 5
    Par défaut
    Je travaille sous windows avec le jdk 1.5.0_08.

    Voila une parti de mon code :

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    File imageFile = new File(imageSrc);
     
    // On créé un 1er buffer pour calculer la taille du mnemo à écrire
    BufferedImage buffer=new BufferedImage(1,1,BufferedImage.TYPE_INT_RGB);
    Graphics2D g2 = buffer.createGraphics();
    g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
    FontRenderContext fc = g2.getFontRenderContext();
    Rectangle2D bounds = font.getStringBounds(mnemo,fc);
    // Taille du texte
    int width = (int) bounds.getWidth();
    //int height = (int) bounds.getHeight();
     
    // On créé un objet Image avec le fichier File
    Image image = ImageIO.read(imageFile);
     
    // On créé le buffer final
    buffer=new BufferedImage(image.getWidth(null), image.getHeight(null),BufferedImage.TYPE_INT_RGB);
    g2 = buffer.createGraphics();
    g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
    // On dessine l'image dans le buffer
    g2.drawImage(image,null,null);
     
    // On dessine le message avec tous ses paramètres
    g2.setFont(font);
    g2.setColor(background);
    g2.setColor(color);
    // Voir la taille
    g2.drawString(mnemo, (image.getWidth(null)-width)/2, image.getHeight(null)/3-1);
     
    // On renvoi le buffer final
    _res.setContentType("image/"+format);
    _res.setBufferSize(1000000);
    // Possible en png ou en jpg
    ImageIO.write(buffer, format, os);
    Et voila les 2 images en pièces jointes :
    - la première c'est ce que j'arrive à générer
    - la deuxième c'est ce qui a été fait en photoshop

    Ce qui est important c'est la partie IBM.
    Je voudrais me rapprocher au plus de la deuxième image.
    Images attachées Images attachées   

Discussions similaires

  1. Métronome précis en Java
    Par legentil dans le forum Général Java
    Réponses: 6
    Dernier message: 28/01/2011, 16h24
  2. le Java est la continuité du C++ ???
    Par Vincent PETIT dans le forum Débats sur le développement - Le Best Of
    Réponses: 33
    Dernier message: 25/08/2005, 20h17
  3. directx et java?? possible??
    Par jiraiya dans le forum DirectX
    Réponses: 3
    Dernier message: 09/07/2002, 19h55
  4. webcam : lire sur un port usb en c/c++ ou java. sous win. ?
    Par flo007 dans le forum Choisir un environnement de développement
    Réponses: 2
    Dernier message: 24/05/2002, 23h24
  5. Service de nommage java C++
    Par Anonymous dans le forum CORBA
    Réponses: 3
    Dernier message: 15/04/2002, 12h48

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