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

Graphisme Java Discussion :

[Traitement d'images] agrandissement


Sujet :

Graphisme Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de Patriarch24
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    1 047
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 047
    Par défaut [Traitement d'images] agrandissement
    Bonjour à tous,
    je cherche une bibliothèque (méthode, algo, ce que vous voulez) permettant de faire un agrandissement d'image efficacement.
    J'ai essayé avec JAI (Java Advanced Imaging), mais l'utilisation des algorithmes différents appliqué avec l'opérateur "scale" (plus proche voisin, bilinéaire et bicubique) donne des résultats décevants, même avec l'optimisation matérielle (sur une image de 1900*1900, que je veux doubler, le traitement dure entre 40 et 50 secondes).

    Pour information, l'utilisation d'ImageMagick (dont on souhaite se séparer), en C++, donne un tel agrandissement en environ 5 secondes. Connaissez-vous une bibliothèque Java, un algorithme précis, un article, ou autre, pouvant m'aider dans ma quête ? L'objectif étant si possible de descendre en dessous de 10 secondes pour des images de cette taille.

    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
    As tu essayé de rendre ton image compatible avec ta carte graphique.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public static BufferedImage loadCompatibleImage(URL resource) throws IOException {
        BufferedImage image = ImageIO.read(resource);
        GraphicsConfiguration configuration = GraphicsEnvironment.
          getLocalGraphicsEnvironment().getDefaultScreenDevice().getDefaultConfiguration();
        BufferedImage compatibleImage = configuration.createCompatibleImage(image.getWidth(),
                                                                            image.getHeight());
        Graphics g = compatibleImage.getGraphics();
        g.drawImage(image, 0, 0, null);
        g.dispose();
        return compatibleImage;
      }
    Ca a tendance à bien accélérer le traitements quand on fait du redimensionnement niveau hardware.

  3. #3
    Membre Expert
    Avatar de Patriarch24
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    1 047
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 047
    Par défaut
    En effet c'est super impressionnant : je passe de 50 secondes à 7 secondes.

    Merci beaucoup !

  4. #4
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 904
    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 904
    Billets dans le blog
    54
    Par défaut
    A noter que, outre l'acceleration via une image compatible, il est possible d'obtenir de bon resultats graphiques tout en concervant un bon compromis de temps, non pas en utilisant RenderingHints.VALUE_INTERPOLATION_BICUBIC, mais en utilisant plutot une succession de modifications de la taille de l'image par 2 avec RenderingHints.VALUE_INTERPOLATION_BILINEAR.
    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 averti
    Inscrit en
    Mai 2006
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 15
    Par défaut
    bonjour,
    J'avais les mêmes soucis de perfs et en passant par le GraphicsConfiguration et l'image compatible j'améliore de beaucoup mes perfs.
    Le souci et que les images redimmensionées restent floues, j'ai amélioré un peu la qualité en suivant les conseils ci-dessus, donc en multipliant la taille à chaque fois par 2 jusqu' àtteindre une taille proche de celle voulue mais la qualité reste un peu trop pourrie.
    les packages que j'utilise sont peut être les responsable de cette ruine :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    import com.sun.image.codec.jpeg.JPEGCodec;
    import javax.imageio.ImageIO;
    import java.awt.Graphics
    import java.awt.image.BufferedImage;
    import java.awt.Image;
    1/ Si vous connaissez le moyen ou des librairies super efficaces je suis pronneurs. Merci de laisser des liens pour les télécharger.
    2/ Est ce que le code faisant appel à la carte graphique marche aussi sur les machines unix qui hebergerons l'application ?

    Merci

  6. #6
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 904
    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 904
    Billets dans le blog
    54
    Par défaut
    Si tu ne veux pas d'effet de flou mais au contraire garder la "pixelisation" tu dois te mettre en RenderingHints.VALUE_INTERPOLATION_NEAREST_NEIGHBOR et dans ce cas plus besoin de faire des successions de division de taille par 2.
    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Traitement d'images : quel langage?
    Par belasri dans le forum Langages de programmation
    Réponses: 19
    Dernier message: 07/10/2005, 09h59
  2. Réponses: 5
    Dernier message: 15/01/2005, 18h29
  3. commande c++ pour le traitement d'images
    Par mateo.14 dans le forum MFC
    Réponses: 2
    Dernier message: 12/01/2005, 10h46
  4. [lib] Traitement d'images
    Par Gogoye dans le forum Multimédia
    Réponses: 4
    Dernier message: 19/11/2004, 16h15
  5. Traitements d'image sur PNG avec transparence
    Par Ingham dans le forum Langage
    Réponses: 16
    Dernier message: 02/08/2004, 16h42

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