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

JavaScript Discussion :

[html2canvas] Dimensionner l'image de récupération


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2020
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2020
    Messages : 24
    Points : 21
    Points
    21
    Par défaut [html2canvas] Dimensionner l'image de récupération
    Bonjour à tous,

    Je ne sais pas si certains d'entre vous connaissent html2canvas (https://html2canvas.hertzen.com/).
    Cette bibliothèque javascript permet de réaliser des Screenshots.

    Sur mon site perso, je propose de jouer, grâce à un émulateur, à des jeux CPC Amstrad. Un bouton permet aux joueurs d'envoyer un screenshot de l'émulateur faisant apparaître le score réalisé afin qu'il soit enregistré.
    Jusque là tout fonctionne correctement.
    Récemment, j'ai voulu mettre en place une fonction pour analyser l'image retourner afin d'identifier le score réalisé. Là encore ça se passait bien jusqu'à ce que je me rend compte que pour certains joueurs ça ne fonctionnait pas.
    Après avoir cherché pourquoi, j'ai remarqué que pour certains joueurs, le screenshot généré ne respecte pas les dimensions indiqués.

    Pourtant, dans le code html, je renseigne les dimensions de ma div dont je veux faire un screenshot avec : style="width: 768px; height: 544px;".
    Dans ma fonction javascript qui appelle la méthode html2canvas, je reprécise les dimensions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    document.getElementById('screen-placeholder').style.width = "768px";
    document.getElementById('screen-placeholder').style.height = "544px";
    Et j'indique les dimensions de l'image à créer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    html2canvas(document.getElementById('screen-placeholder')).then(function(canvas) {
              data = canvas.toDataURL();
              image = document.createElement('img');
              image.src = data;
              image.style.width = "768px";
              image.style.height = "544px";
    }
    Et malgré cela, pour certains joueurs, l'image générée a une taille de : 960px / 680px

    Cela fait maintenant des jours que je me prend la tête sur le sujet sans trouver de solution. Alors si quelqu'un à une idée et peut m'apporter son aide je serai heureux d'échanger avec lui

  2. #2
    Membre à l'essai
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2020
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2020
    Messages : 24
    Points : 21
    Points
    21
    Par défaut
    Bon après mettre pris la tête pendant des jours, il suffit que je poste un message pour trouver une piste.

    Je viens effectivement de comprendre que les personnes qui ne sont pas en mode d'affichage 100% n'ont pas les bonnes dimensions sur les screenshots gérés par html2canvas.
    C'est une piste, mais je n'ai aucune idée comment résoudre mon problème.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2020
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2020
    Messages : 24
    Points : 21
    Points
    21
    Par défaut
    Comme on est jamais mieux servi que par soi-même, j'ai enfin trouvé une solution à mon problème.

    Je donne l'info au cas où ça aiderait quelqu'un pour ne pas qu'il passe autant de temps que moi à chercher.

    En fait, pour ne pas dépendre du mode d'affichage du système ou du navigateur, je précise dans les options de la fonction html2canvas la largeur, la hauteur et surtout le zoom à appliquer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    html2canvas(document.getElementById('screen-placeholder'), {
      width: 768,
      height: 544,
      scale: 1
    }).then(function(canvas) {
              data = canvas.toDataURL();
              image = document.createElement('img');
              image.src = data;
              image.style.width = "768px";
              image.style.height = "544px";
    }

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

Discussions similaires

  1. List d'image et récupération
    Par offspring dans le forum Objective-C
    Réponses: 0
    Dernier message: 25/06/2010, 19h45
  2. Dimensionner une image
    Par mattthieu dans le forum GTK+ avec Python
    Réponses: 4
    Dernier message: 22/05/2008, 11h35
  3. Dimensionnement d'images en publipostage
    Par Tintou dans le forum Access
    Réponses: 1
    Dernier message: 14/05/2007, 17h00
  4. est ce qu on peu dimensionner une Image contenu dans un Jlabel
    Par uzumaki_naruto dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 24/02/2007, 16h33
  5. Réponses: 4
    Dernier message: 16/12/2005, 22h52

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