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

Interfaces Graphiques en Java Discussion :

Generer une image à partir d'un fichier HTML


Sujet :

Interfaces Graphiques en Java

  1. #1
    Membre actif Avatar de maloups
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 332
    Points : 208
    Points
    208
    Par défaut Generer une image à partir d'un fichier HTML
    Bonjour à tous !

    Je cherche le moyen le plus rapide en terme de performance pour générer une image à partir d'un fichier html...

    A l'heure actuelle j'utilise xhtmlrenderer... le problème, c'est que même un fichier html relativement basic, il met un peu plus de 500 ms pour "peindre" mon image (sur un poste pourtant pas bien vieux...) et je parle bien uniquement du "paint"

    Si l'on prend en compte toute la procédure de xhtmlrenderer pour générer une image à partir du html il faut compter une bonne seconde !

    Enfin bref... je cherche tout et n'importe quoi qui me permettrait d'aller plus vite... changer de composant, utiliser uniquement du code java...

    Toutes les idées sont bonnes à prendre !

    Merci d'avance !

  2. #2
    Membre expérimenté
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 088
    Points : 1 540
    Points
    1 540
    Par défaut Reponse possible...
    Bonjour,

    J'ai eu l'occasion récement de faire la même chose que vous. C'est à dire, produire un JPeg à partir d'une page décrite en HTML. Cependant, je ne suis pas passé par une api tiers, je me suis contenté d'exploiter BuferredImage avec JEditorPane. Voici un extrait 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
    HTMLDocument documentHTML = new HTMLDocument();
    JEditorPane editeur = new JEditorPane();
    editeur.setContentType("text/html");
    editeur .addComponentListener(new java.awt.event.ComponentAdapter() {
        public void componentResized(java.awt.event.ComponentEvent evt) {
           jEditorPane1ComponentResized(evt);
           }
        });
    editeur.read(new FileInputStream(fichier html), documentHTML);
    BufferedImage imgTmp = new BufferedImage(editeur.getPreferredSize().width, editeur.getPreferredSize().height, BufferedImage.TYPE_INT_RGB);
    editeur.setSize(editeur.getPreferredSize().width, editeur.getPreferredSize().height);
    Graphics2D surface = imgTmp.createGraphics();
    editeur.paint(surface);
    Et voilà, mon BufferedImage contient une image au format RGB représentant en taille réelle la page HTML décrite par le fichier fichier html.
    Je préciserai que cela m'a fait des surprises. En effet, il ne faut pas oublier que le BufferedImage contient certe une image mais sans compression, et comme une page HTML, généralement ça fait la largeur de son écran, les puristes fixent cela à 800 pixels de large, sans compter qu'il n'y a plus de notion de hauteur. Cette dernière dépend directement du contenu HTML. En clair, par rapport à par exemple un fichier HTML contenant une vingtaine de tableaux de chiffres de quelques colonnes avec en moyenne 10 lignes, on se retrouve avec une image de plusieurs dizaines de milliers de pixels de haut. A un tel point que j'ai très vite du allez jusqu'à passer des valeur suffisante en terme d'allocation mémoire à ma jvm pour arriver à produire l'image face à un fichier contenant un peu plus de tables. Bref, mon intérret à faire cela tenait en ce que je voulais absolument offrir une possibilité de zoom sur un fichier HTML. J'ai conservé ce principe mais j'ai du m'instruire dans le tutoriaux pour comprendre comment gérer la peinture correctement et ne peindre (donc mémorisé dans mon BufferedImage) que ce qui est visible à l'écran. Ca limite les tailles maximale dans l'absolue aux résolution écran. Et quelles qu'elles soient, ça ne fera jamais plusieurs dizaines de milliers de pixels....

Discussions similaires

  1. Réponses: 1
    Dernier message: 15/10/2014, 17h00
  2. [Débutant] Charger une image à partir d'un fichier
    Par catty_sofi dans le forum Silverlight
    Réponses: 4
    Dernier message: 28/05/2012, 16h21
  3. [GD] Créer une image à partir d'un fichier
    Par MarcCC dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 24/01/2008, 23h03
  4. Insérer une image à partir d'un fichier .jar
    Par gege87270 dans le forum Forms
    Réponses: 0
    Dernier message: 30/11/2007, 11h26
  5. [CR] Inserer une image à partir d'un fichier
    Par Gandalf24 dans le forum SAP Crystal Reports
    Réponses: 7
    Dernier message: 23/07/2003, 10h55

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