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 :

Récupérer image d'un site pour exploitation


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2017
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2017
    Messages : 24
    Par défaut Récupérer image d'un site pour exploitation
    Bonjour,

    J'ai voulu mettre en place une système pour lire une image sur un site pour pouvoir en extraire les couleurs des pixels (- LIEN -), j'avais commencé en Java (et même fini^^) mais j'ai voulu me tourner vers une solution en ligne, afin d'intégrer tout ça dans un site web

    Je souhaiterai donc récupérer l'image dans une variable surement, afin de l'utiliser ensuite, j'ai vu plein de méthodes avec get_html_content, du simple_dom_parser mais rien ne marche, car la page est assez bizarrement faite, l'image en tant que telle n'a pas de lien, donc passé le PHP, je me disais que peut-être en JS (que je connais moins il y aurait un moyen) ?

    En JavaFX c'était tellement simple : Image toto = new Image("http://tx3.travian.fr/hero_body.php?uid=2743"); ^^ mais en JS je ne vois pas du tout malgré mes recherches et c'est un peu du au format que je trouve bizarre de la page, et surtout peut-on en JS s'occuper d'une autre page, car quand je l'utilise c'est pour agir sur mon propre site ^^

    Merci d'avance

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 210
    Par défaut
    Bonjour,
    tu pourras sans aucun problème afficher cette image dans ta page, sous réserve que'lle ne change pas de nom, mais tu ne pourras pas la manipuler, via un <canvas> par exemple car hors domaine.
    Une solution considérait à te créer une copie coté serveur et travailler à partir de celle-ci, ne pas oublier quand même les éventuels droits liés à cette image, c'est la moindre des choses

  3. #3
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Citation Envoyé par NoSmoking Voir le message
    Bonjour,
    tu pourras sans aucun problème afficher cette image dans ta page, sous réserve que'lle ne change pas de nom, mais tu ne pourras pas la manipuler, via un <canvas> par exemple car hors domaine.
    Oui !
    Citation Envoyé par console
    Failed to execute 'getImageData' on 'CanvasRenderingContext2D': The canvas has been tainted by cross-origin data.
    On apprend quelque chose de nouveau tous les jours sur DVP !

    Exemple :

    Code HTML : 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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    <!DOCTYPE html>
    <html lang="fr" dir="ltr">
    <head>
      <meta http-equiv="cache-control" content="public, max-age=60">
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width, initial-scale=1">
      <meta name="author" content="Daniel Hagnoul">
      <title>Test</title>
      <style>
     
      </style>
      <script>
        'use strict';
            
        document.addEventListener( 'DOMContentLoaded', ev => {
          
          
        }, false );
        
        window.addEventListener( 'load', ev => {
          
          const
            canvasSoldat = document.querySelector( "#soldat"),
            ctxSoldat = canvasSoldat.getContext( "2d" ),
            imageSoldat = new Image();
          
          imageSoldat.src = "http://tx3.travian.fr/hero_body.php?uid=2743";
          
          imageSoldat.addEventListener( "load", ev => {
            canvasSoldat.width = imageSoldat.width;
            canvasSoldat.height = imageSoldat.height;
            ctxSoldat.drawImage( imageSoldat, 0, 0 );
          }, false );
          
          document.querySelector( "#pixel" ).addEventListener( "click", ev => {
            
            // test, position dans l'image 10, 50
            let pixelData = ctxSoldat.getImageData( 10, 50, 1, 1 );
            
            console.log( pixelData );
            
            // Failed to execute 'getImageData' on 'CanvasRenderingContext2D': The canvas has been tainted by cross-origin data.
          })
          
        }, false );
      </script>
    </head>
    <body>
      <main>
     
        <canvas id="soldat"></canvas>
     
        <button id="pixel">Pixel</button>
     
      </main>
    </body>
    </html>

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2017
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2017
    Messages : 24
    Par défaut
    Merci pour ces premières informations, donc si je l'affiche juste je ne peux pas récupérer les pixels car elle n'est "pas à moi"

    Mais en soi, je n'ai pas besoin de l'afficher, je veux juste récupérer les pixels, peut-on faire une copie de l'image pour qu'elle soit "à moi" puis utiliser getImageData() ?

  5. #5
    Modérateur

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

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 210
    Par défaut
    Comme précisé ci dessus
    Une solution considérait à te créer une copie coté serveur et travailler à partir de celle-ci

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2017
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2017
    Messages : 24
    Par défaut
    Autant pour moi ... j'ai la phrase au début, mais après ça m'est sorti de la tête ^^

    Enfin j'ai essayé quelques trucs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var clone = new Image();        //avec et sans cette ligne j'ai essayé
    clone = imageSoldat.cloneNode(0);
    var  pixpix = clone.getImageData(10,50,1,1);   //erreur ici "clone.getImageData n'est pas une fonction" me dit la console)
    console.log(pixpix);
    (j'ai mis des "var" je ne pense pas que ça joue, mais dans mon éditeur, surement à cause d'un param de version il souligne les 'let' mais rien de bloquant je pense)

    Mais pas de retour, je ne sais pas s'il suffit de cloner, s'il faut faire "new Image();" avant ou non en fait pour qu'il sache que "clone" est une image

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

Discussions similaires

  1. Faire un lien image sur mon site pour androïd
    Par Narbeper dans le forum Développement Web avec .NET
    Réponses: 4
    Dernier message: 28/02/2017, 10h55
  2. Récupérer image d'un site
    Par thibotus01 dans le forum Mise en page CSS
    Réponses: 9
    Dernier message: 21/09/2013, 16h00
  3. Récupérer les images d'un site web
    Par [Silk] dans le forum Web & réseau
    Réponses: 2
    Dernier message: 15/03/2006, 12h00
  4. [techno] Précharger les images d'un site pour ou contre?
    Par Death83 dans le forum Webdesign & Ergonomie
    Réponses: 19
    Dernier message: 26/10/2005, 10h21
  5. [Performance] - Blob ou pas pour les images d'un site ?
    Par ShinJava dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 04/07/2005, 17h32

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