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

Angular Discussion :

Modifier la taille du canvas


Sujet :

Angular

  1. #1
    Membre actif
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 604
    Points : 206
    Points
    206
    Par défaut Modifier la taille du canvas
    Bonjour

    Hello,

    Je voudrais savoir comment modifier la taille de mon canvas pour qu'il s'adapte à l'image que je luis fait entrer.

    html
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <input type="file" (change)="test($event)" accept="image/*"> <br><br>
    <canvas #mycanvas width="0" height="0" style="border: 2px solid red;"> </canvas>
    ts
    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
     
     
      test(event){
     
        let canvas = this.mycanvas.nativeElement
        let context = canvas.getContext('2d');
        context.clearRect(0, 0, 300, 300);
     
        var render = new FileReader();
     
        render.onload = function(event: any) {
     
          var img = new Image()
     
          img.onload = function() {
     
            canvas.width = img.width;
            canvas.heigth = img.height;
            context.drawImage(img, 0, 0);
     
          };
     
          img.src = event.target.result;
     
        };
     
        render.readAsDataURL(event.target.files[0])
      }

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Bonjour,
    il ne faut pas confondre l'élément HTML <canvas> et son contexte de rendu.

    Lorsque tu affectes les attributs HTML height et width à ton élément <canvas>, tu définies la largeur du contexte de rendu et non celle de l'élément HTML, même si en absence de CSS celui-ci se redimensionne correctement.

    Le plus simple semble, dans ton cas, être de redimensionner les deux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    // modif de l'attribut HTML
    canvas.width = img.width;
    canvas.height = img.height;
    // modif. CSS de l'élément <canvas>
    canvas.style.width = img.width +"px";
    canvas.style.height = img.height +"px";
    [EDIT] height et non heigth

  3. #3
    Membre actif
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 604
    Points : 206
    Points
    206
    Par défaut
    Bonjour,

    j'ai rajouté le code mais le canvas ne se modifie que sur la largeur et non pas sur la hauteur.

    Nom : 22.png
Affichages : 1352
Taille : 1,3 Ko

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    j'ai corrigé, il fallait lire height !

  5. #5
    Membre actif
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 604
    Points : 206
    Points
    206
    Par défaut
    Je fais aussi la même erreur ^^ .
    Merci de votre aide.

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

Discussions similaires

  1. Ajouter du code HTML dynamiquement avec C#
    Par paladice dans le forum ASP.NET
    Réponses: 2
    Dernier message: 17/09/2013, 14h02
  2. tableau html avec ajout ligne
    Par marty499 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 17/02/2009, 13h10
  3. [JEditorPane]ajout de balises html
    Par almass dans le forum Composants
    Réponses: 12
    Dernier message: 12/05/2004, 17h07
  4. [DOM] Comment lire de l'HTML avec DOM ?
    Par djodjo dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 20/04/2004, 15h37
  5. impression HTML avec la librairie wxwindows
    Par farscape dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 23/12/2003, 08h47

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