Je souhaite pouvoir naviguer sur une image

Résolu
cs_craso Messages postés 55 Date d'inscription mardi 6 juin 2006 Statut Membre Dernière intervention 20 janvier 2009 - 6 juin 2006 à 19:46
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 - 8 juin 2006 à 00:26
Bonjour tout le monde,
j'ai une grande image et j'ai fait en sorte qu'on en voit qu'une partie (200*200)-qu'on va appeler l'apercu, avec la fonction "imagecopy". J'ai déjà un problême avec la couleur, mais c'est pas la question. J'ai fait un fichier "afficher l'image" qui contient la ligne suivante:
echo '';

Je souhaite qu'en cliquant sur l'image, l'endroit ou l'on a cliqué vienne au centre de l'apercu et que l'image nous montre une region de 200 par 200 dont le centre est l'endroit sur lequel on vient de cliquer...
J'ai donc besoin de 2 variables qui se souviennent où on se trouve sur l'image, mais lesquelles et comment modifier leur valeur?
Je vous remercie par avance pour votre compréhension et pour vos réponses.

15 réponses

cs_craso Messages postés 55 Date d'inscription mardi 6 juin 2006 Statut Membre Dernière intervention 20 janvier 2009
7 juin 2006 à 22:18
Alors j'ai trouvé le code que je cherchais, a croire qu'on fait mieux les choses par soi même (et que je m'exprime assez mal, pasqu (sic) personne ne m'a compris), voici l'image:
<?php
//connexion a la bdd :
mysql_connect('localhost','root','');
mysql_select_db('image');

//extraction des coordonnees du click :
extract($_GET);

//attribution des valeurs de départ des coordonnés x et y :
if (!isset($x) OR !isset($y))
{
$x=0;
$y=0;
}

//requete sql :
$sql = 'SELECT * FROM `deplacement` LIMIT 0, 1';
$retour = mysql_query($sql);

while ($req = mysql_fetch_assoc($retour))
{
//on attribut les nouvelles coordonnees du coin en haut a gauche de l'image
$nx = $req['x']+$x -100;
$ny = $req['y'] + $y -100;

//ces conditions servent a ne pas depasser le cdre de l'image
if ($nx > 91)
{
$nx =91;
}
elseif ($nx<0)
{
$nx=0;
}
if ($ny > 239)
{
$ny = 239;
}elseif($ny<0)
{
$ny =0;
}

//on actualise les nouvelles coordonnees de la table
mysql_query("UPDATE deplacement SET x='$nx' ,y='$ny' ");
}




header ("Content-type: image/jpeg");

//l'image de destination sert de "fenêtre" :
$destination = imagecreate(200,200);

//à l'image source
$source = imagecreatefromjpeg("joliefille.jpg");

$blanc = imagecolorallocate($destination,200,200,200);

//on copie l'image source sur l'image de destination:
$part = imagecopy($destination, $source,0,0,$nx,$ny,200,200);

//on affiche l'image
imagejpeg($destination);
?>

...et voici la page avec l'input image:
<html>

<form method=get>
<?php

extract($_GET);

if (!isset($x) OR !isset($y))
{
$x=100;
$y=100;
}

echo '
';


?>
</form>

</html>

Sur ce, je clos le sujet
3
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
6 juin 2006 à 21:00
Salut,

faut passer par javascript obligatoirement pour ça (pour pouvoir cliquer sur l'image et récupérer les coordonnées x et y du clic).

a +

<hr size="2" width="100%" /><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
0
cs_craso Messages postés 55 Date d'inscription mardi 6 juin 2006 Statut Membre Dernière intervention 20 janvier 2009
6 juin 2006 à 21:09
bonjour,
il est surement possible de connaitre les coordonnees d'un click par js, mais tu peux demander a php de le faire aussi bien: avec les ,
je suis entrain de voir avec le rafraichissement d'une table qui contient x et y.
Merci pour ta reponse.
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
6 juin 2006 à 21:11
Tu ne peux pas avec PHP pour la simple et bonne raison que PHP est exécuté du côté du serveur et non du client.

<hr size="2" width="100%" /><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
6 juin 2006 à 21:55
"faut passer par javascript obligatoirement pour ça"
+1

"il est surement possible de connaitre les coordonnees d'un click par js" C'est bien de le reconnaitre.
"mais tu peux demander a php de le faire aussi bien" Ouh la... nouvelle de luxe ! Si tu y arrives faut que tu préviennes toute la communauté de PHP :p
"avec les " Ca veut dire qu'il faille que tu découpes ton image.
J'appèle pas ca de la reconnaissance de position de clic m'enfin bon :o
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
6 juin 2006 à 22:03
Bah sinon il faut une zone réactive en HTML mais bon si il doit traiter pixel par pixel, j'ose pas imaginer la taille du code html généré... (on va en arriver à je sais pas combien de Mo)...

<hr size="2" width="100%" /><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
0
cs_craso Messages postés 55 Date d'inscription mardi 6 juin 2006 Statut Membre Dernière intervention 20 janvier 2009
6 juin 2006 à 22:03
Je demande juste a obtenir les positions du click sur mon input et avec php j'y arrive, la preuve c'est que je puisse positionner une image aux coordonnees du click.
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
6 juin 2006 à 22:05
Nan mais dans ce cas ton problème n'a rien à voir avec ce qu'on a compris FhX et moi...

<hr size="2" width="100%" /><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
0
cs_craso Messages postés 55 Date d'inscription mardi 6 juin 2006 Statut Membre Dernière intervention 20 janvier 2009
6 juin 2006 à 22:07
j'imagine pasque je suis tout debutant et que je connais bien ça
Je suis entrain d voir si une table avec x et y peut convenir pour retenir la valeur.
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
6 juin 2006 à 22:11
Tant que tu t'exprimeras aussi bien que tu écris on aura je pense du mal à te comprendre...

<hr size="2" width="100%" /><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
0
cs_craso Messages postés 55 Date d'inscription mardi 6 juin 2006 Statut Membre Dernière intervention 20 janvier 2009
6 juin 2006 à 22:18
bon, l'ai une grande image, disons une carte, et je ne veux montrer de la carte au depart que la partie en haut a gauche, son apercu. Et lorsque l'on clique sur l'aprecu, disons en bas a droite, l'image de la carte montrera une un apercu plus inferieure et a droite par rapport au premier apercu.
Le point sur lequel a cliqué l'utilisateur viendra se positionner au centre de l'apercu et celui-ci montrera un nouvel apercu. On se deplacera sur la carte de proche en proche. Et pour cela il me faut une table avec x et y non?
0
pastis51forever Messages postés 172 Date d'inscription dimanche 29 juin 2003 Statut Membre Dernière intervention 8 septembre 2006 1
7 juin 2006 à 11:33
Bonjour!
Pour récupérer le clic sans javascript, je ne vois que les images map, ou tu fais un quadrillage sur ton image. Tu n'auras pas la précision au pixel, mais tu peux faire des zones de la taille que tu veux.
Pour ce qui est de stocker les données dans mysql, c'est faisable, mais y a-t'il vraiment lieu de les stocker, si elles ne sont utilisées que dans la page en cours?
Pour n'afficher qu'une partie de l'image, je pense qu'il n'y a que les css qui seront vraiment efficaces
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
7 juin 2006 à 23:06
Bah écoute si tu t'étais exprimé correctement on aurait peut-être pu te guider...

d'ailleurs le extract tel qu'il est mis présente une belle faille de sécurité :) (n'oublie pas le EXTRACT_SKIP...

<hr size="2" width="100%" /><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
0
cs_craso Messages postés 55 Date d'inscription mardi 6 juin 2006 Statut Membre Dernière intervention 20 janvier 2009
7 juin 2006 à 23:13
merci pour ta réponse, c'est toujours pareil, pour la personne c'est archi simple a comprendre mais pour les autres c'est une autre affaire... Je ne sais pas ce qu'est une collision, si tu peux me dire ce que ca implique je te remercie par avance.
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
8 juin 2006 à 00:26
sans EXTRACT_SKIP :

<?php
    $x=5;

    extract($_GET);

    echo $x;

?>

si page.php?x=7 alors ton $x vaudra 7 car la variable sera écrasée, ce qui n'est pas le cas avec EXTRACT_SKIP

<hr size="2" width="100%" /><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
0
Rejoignez-nous