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 :

Redimensionner une image avec getElementByID


Sujet :

JavaScript

  1. #1
    Gunner4902
    Invité(e)
    Par défaut Redimensionner une image avec getElementByID
    Bonjour,
    Il y a quelques mois une personne du forum m'a montré comment centrer une image dynamique qui n'a pas toujours la meme taille dans une page web grace à getElementByID :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    document.getElementById('img').style.marginLeft=(document.prenom_image.width*-1/2);
    document.getElementById('img').style.marginTop=(-1*(document.prenom_image.height/2));
    J'aimerai connaitre le code pour agrandir l'image à 120% par exemple… toujours en utilisant le code suscité pour centrer l'image redimensionnée après.

    Merci

  2. #2
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    bonjour,

    curieux le code que tu as posté (sans doute parce qu'il manque le contexte dans lequel il est utilisé )

    Sinon pour agrandir ton image, il s'agit d'une opération :

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    document.prenom_image.width = parseInt(document.prenom_image.width)*(1+1.2); // (w+w*120/100)
    document.prenom_image.height = parseInt(document.prenom_image.height)*(1+1.2); //(h+h*120/100)

  3. #3
    Gunner4902
    Invité(e)
    Par défaut
    Citation Envoyé par Auteur Voir le message
    curieux le code que tu as posté (sans doute parce qu'il manque le contexte dans lequel il est utilisé )
    Voici le code entier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $root = "images";
    $folder = scandir($root);
    $folder = array_diff($folder, array(".", "..", "Thumbs.db"));
    $fo = array_rand($folder);
    $file = glob("$root/$folder[$fo]/*.{jpg,jpe,jpeg,jfif}", GLOB_BRACE);
    $fi = array_rand($file);
    list($width, $height, $type, $attr) = getimagesize("".$file[$fi]."");
    echo utf8_encode("<div id=\"img\"><img src=\"".$file[$fi]."\"  $attr name=\"prenom_image\" /></div>");


    Et merci pour le code

  4. #4
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    c'est du PHP, je n'y comprends rien

    Sinon la solution que j'ai posté te convient ?

  5. #5
    Gunner4902
    Invité(e)
    Par défaut
    Voici le code PHP commenté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $root = "images";  //désignation de la racine
    $folder = scandir($root);  //on scanne les dossiers et fichiers de la racine
    $folder = array_diff($folder, array(".", "..", "Thumbs.db"));  // on élimine . .. et Thumbs.db
    $fo = array_rand($folder); // on prend un dossier au hasard
    $file = glob("$root/$folder[$fo]/*.{jpg,jpe,jpeg,jfif}", GLOB_BRACE);  // on liste les noms des fichiers contenu dans le dossier aléatoire en ne retenant que les images jpg, jpe, jpeg et jfif et en supprimant l'extension
    $fi = array_rand($file);  // on prend une image aléatoire
    list($width, $height, $type, $attr) = getimagesize("".$file[$fi].""); //on retourne les informations de l'image pour renseigner l'attribut servant à JavaScript
    echo utf8_encode("<div id=\"img\"><img src=\"".$file[$fi]."\"  $attr name=\"prenom_image\" /></div>");// on encode en UTF-8 le nom de l'image qui est le nom du fichier sans l'extension
    Sinon, ton code me convient tout à fait, il est en pratique dans ma page d'ailleurs Mais j'ai du modifier quelquechose, car 1+1.2 = 100% + 120% = 220%, donc j'ai simplement mis 1.2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.prenom_image.width = parseInt(document.prenom_image.width)*(1.2);

  6. #6
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    Citation Envoyé par Gunner4902 Voir le message
    Sinon, ton code me convient tout à fait, il est en pratique dans ma page d'ailleurs Mais j'ai du modifier quelquechose, car 1+1.2 = 100% + 120% = 220%, donc j'ai simplement mis 1.2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.prenom_image.width = parseInt(document.prenom_image.width)*(1.2);
    euh augmenter une valeur de 120% c'est réaliser le calcul suivant :
    W = w +w*120/100 = w*(1+1.2)

    les pourcentages
    ajouter un pourcentage : Augmenter un nombre de p%, c'est lui ajouter p% de lui-même. Ainsi, augmenter 350 de 18%, c'est calculer 350+350×18/100=350×1,18=413.

  7. #7
    Gunner4902
    Invité(e)
    Par défaut
    Possible, je suis pas très doué en maths
    En tous cas si tu essayes, tu verras qu'avec le calcul 1+1.2, l'image est augmenté de 220% alors qu'avec 1.2 elle ne l'est que de 120%… donc je me suis tablé sur ce que je voyais.
    Ou alors c'est une interprétation du navigateur (Opera 9.51) ?

  8. #8
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    Citation Envoyé par Gunner4902 Voir le message
    Possible, je suis pas très doué en maths
    En tous cas si tu essayes, tu verras qu'avec le calcul 1+1.2, l'image est augmenté de 220% alors qu'avec 1.2 elle ne l'est que de 120%… donc je me suis tablé sur ce que je voyais.
    Ou alors c'est une interprétation du navigateur (Opera 9.51) ?

    C'est la surface ou les dimensions (largeur et hauteur) que tu veux augmenter de 120 % ?
    Si tu augmentes une valeur de 100% cela revient à la multiplier par 2.

    Là en multipliant par 1,2 tu réalises une augmentation de 20% seulement.

    tu sais que tu commences à me faire douter

  9. #9
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    [Me Capello]
    Il s'agit d'un problème de sémantique.
    Dans l'absolu, c'est Auteur qui a raison, mais il est vrai qu'un abus de langage très répandu amène à considérer que +120% correspond à 20% en plus...
    Tout comme une réduction de -20% est au sens strict une augmentation sera comprise comme une baisse
    [/Me Capello]

    Euh... désolé, je prend le 12 et je sors ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  10. #10
    Gunner4902
    Invité(e)
    Par défaut
    Citation Envoyé par Gunner4902 Voir le message
    J'aimerai connaitre le code pour agrandir l'image à 120% par exemple
    [Me Capello]"à 120%" pas "de 120%" [/Me Capello]

  11. #11
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    Citation Envoyé par Gunner4902 Voir le message
    [Me Capello]"à 120%" pas "de 120%" [/Me Capello]
    oui, comme quoi les pourcentages ne tiennent qu'à un mot

  12. #12
    Gunner4902
    Invité(e)
    Par défaut
    Oui, rire

Discussions similaires

  1. Réponses: 3
    Dernier message: 13/03/2015, 00h45
  2. [PIL] redimensionner une image avec resize
    Par nicolivier dans le forum Général Python
    Réponses: 12
    Dernier message: 06/04/2013, 17h20
  3. Réponses: 1
    Dernier message: 13/02/2010, 18h49
  4. Comment redimensionner une image avec GD ?
    Par pdtor dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 04/12/2009, 12h08
  5. [GD] Redimensionner une image avec une taille fixe
    Par Aspic dans le forum Bibliothèques et frameworks
    Réponses: 29
    Dernier message: 20/07/2008, 14h57

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