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

Langage PHP Discussion :

Afficher imagepng dans html ?


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Avril 2003
    Messages
    216
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 216
    Par défaut Afficher imagepng dans html ?
    J'ai un petit probleme : ce code marche, il me créé bien /temp/maze.png.
    Mais maintenant comment l'afficher ?
    J'ai essaye en mettant img src en dessous mais là ce ne marche plus...
    merci !!

    <?php
    header("Content-type:image/png");

    error_reporting(E_ALL ^ E_NOTICE);

    $urlphoto = $_POST['urlphoto'];

    $LargeurImage = $_POST['LargeurImage'];
    $XL = $_POST['XL'];
    $YL = $_POST['YL'];


    // *******************************************************************
    // Test des valeurs entrées par l'utilisateur
    // *******************************************************************

    $LargeurImage=floor($LargeurImage);
    $XL=floor($XL);
    $YL=floor($YL);

    if(!$LargeurImage or !$XL or !$YL) {
    if(!$LargeurImage) print("Vous avez oublié de saisir la largeur de l'image.<br>");
    if(!$XL) print("Vous avez oublié de saisir le nombre de cases horizontales du labyrinthe.<br>");
    if(!$YL) print("Vous avez oublié de saisir le nombre de cases verticales du labyrinthe.<br>");
    print("<a href=\"/maze_maker_1.php\">Retour</a>");
    exit;
    }

    // *******************************************************************
    // Définition des dimensions de la grille
    // *******************************************************************

    $Marge=20; // Largeur de la marge de l'image exprimée en pixels
    $Unite=floor(($LargeurImage-(2*$Marge))/$XL); // Dimensions (largeur et hauteur) des cases, exprimées en pixels

    // *******************************************************************
    // Initialisation des fonctions décrivant l'état de la grille
    // *******************************************************************

    for($xc=1;$xc<=$XL;$xc++) {
    $Hor[$xc][0]=1;
    }

    for($yc=1;$yc<=$YL;$yc++) {
    $Ver[0][$yc]=1;
    }

    for($xc=1;$xc<=$XL;$xc++) {
    for($yc=1;$yc<=$YL;$yc++) {
    $Hor[$xc][$yc]=1;
    $Ver[$xc][$yc]=1;
    $Pos[$xc][$yc]=0;
    }
    }

    $compteurCasesVis=0; // Compteur du nombre de cases visitées


    // *******************************************************************
    // Définition de la fonction TirN($n), retournant un tableau à n
    // éléments, avec les valeurs 1 à n classées dans un ordre aléatoire.
    // Cette fonction sera utilisée dans l'algorythme de création du
    // labyrinthe.
    // *******************************************************************

    // Initialisation du générateur de nombres aléatoires

    $t=time();
    $p=getmypid();
    mt_srand($t+$p);

    function TirN($n) {

    // Initialisation du tableau $tabVal (qui prend les valeurs 1 à n croissantes)

    for($c=0;$c<=($n-1);$c++) {
    $tabVal[$c]=$c+1;
    }

    // Création du tableau $tabRes (qui prend les valeurs 1 à n dans un ordre aléatoire)

    for($d=($n-1);$d>=1;$d--) {
    $al=mt_rand(0,$d);
    $tabRes[$d]=$tabVal[$al];
    $tabVal[$al]=$n+1;
    sort($tabVal);
    }
    $tabRes[0]=$tabVal[0];

    return($tabRes);
    // Note : le tableau contient $n éléments. L'index du tableau débute à 0

    }

    // *******************************************************************
    // Algorithme de création du labyrinthe (ajustement des valeurs $Hor,
    // $Ver, $Pos)
    // *******************************************************************

    // -------------------------------------------------------------------
    // Définition de la fonction galerie($x,$y)
    // Cette fonction creuse une galerie à partir du point ($x,$y)
    // en suivant les règles suivantes :
    // - Le point ($x,$y) est marqué comme étant visité
    // - Le compteur de cases visitées augmente d'une unité
    // - Choix d'une direction H(1), D(2), B(3), G(4)
    // - Si la case déterminée par cette direction existe, et n'a pas
    // encore été visitée, on ajuste la valeur de la variable Hor ou Ver
    // correspondante, et on ré-applique à nouveau la fonction galerie()
    // -------------------------------------------------------------------

    function galerie($x,$y) {

    global $XL,$YL,$Hor,$Ver,$Pos,$compteurCasesVis,$comptt;

    $comptt++;

    if($Pos[$x][$y]==0) $compteurCasesVis++;
    $Pos[$x][$y]=1;

    $directionTab=TirN(4); // choix d'une direction H, D, B, G

    for($c=0;$c<=3;$c++) {
    $direction=$directionTab[$c];
    if(($direction==1) and (($y>1) and ($Pos[$x][$y-1]==0))) {
    $Hor[$x][$y-1]=0;
    galerie($x,$y-1);
    break;
    }
    if(($direction==2) and(($x<$XL) and ($Pos[$x+1][$y]==0))) {
    $Ver[$x][$y]=0;
    galerie($x+1,$y);
    break;
    }
    if(($direction==3) and (($y<$YL) and ($Pos[$x][$y+1]==0))) {
    $Hor[$x][$y]=0;
    galerie($x,$y+1);
    break;
    }
    if(($direction==4) and (($x>1) and ($Pos[$x-1][$y]==0))) {
    $Ver[$x-1][$y]=0;
    galerie($x-1,$y);
    break;
    }
    }
    }

    // -----------------------------------------------------------------
    // Lancement effectif du creusement des galeries
    // -----------------------------------------------------------------

    // Choix au hasard d'une première case pour le creusement de la première galerie

    $x0=mt_rand(1,$XL);
    $y0=mt_rand(1,$YL);

    galerie($x0,$y0);

    // définition de la fonction pointDep($x,$y), destinée à vérifier si oui
    // ou non une case de coordonnées ($x,$y) peut être utilisée comme point
    // de départ pour le creusement d'une nouvelle galerie
    // (retourne 'vrai' si la case peut être utilisée comme point de départ)

    function pointDep($x,$y) {
    global $XL, $YL, $Pos;
    $resTestCondition=($Pos[$x][$y]==1) and((($x>1) and ($Pos[$x-1][$y]==0)) or (($Pos[$x+1][$y]==0) and ($x<$XL)) or (($Pos[$x][$y-1]==0) and ($y>1)) or (($Pos[$x][$y+1]==0) and ($y<$YL)));
    return $resTestCondition;
    }

    // Creusement du reste du labyrinthe :
    // On répète le creusement de nouvelles galeries tant qu'il existe
    // des cases non encore visitées

    while($compteurCasesVis<$XL*$YL) {

    $tabTirX=TirN($XL);
    $tabTirY=TirN($YL);

    for($xa=0;$xa<$XL;$xa++) {
    $x=$tabTirX[$xa];
    for($ya=0;$ya<$YL;$ya++) {
    $y=$tabTirY[$ya];
    if(pointDep($x,$y)) break;
    }
    if (pointDep($x,$y)) break;
    }

    galerie($x,$y);
    }

    // --------------------------------------------------------
    // Touche finale : ouverture de deux portes sur l'extérieur
    // --------------------------------------------------------

    $Ver[0][1]=0; // En haut à gauche
    $Ver[$XL][$YL]=0; // en bas à droite

    // *******************************************************************
    // Création de l'image au format png
    // *******************************************************************

    $idImage=imagecreate(($XL*$Unite)+(2*$Marge),($YL*$Unite)+(2*$Marge));

    $couleur0=imagecolorallocate($idImage,255,255,255);
    $couleur1=imagecolorallocate($idImage,0,0,0);

    for($xc=1;$xc<=$XL;$xc++) {
    if($Hor[$xc][0]==1) {
    imageline($idImage,$Marge+(($xc-1)*$Unite),$Marge,$Marge+($xc*$Unite),$Marge,$couleur1);
    }
    }

    for($yc=1;$yc<=$YL;$yc++) {
    if($Ver[0][$yc]==1) {
    imageline($idImage,$Marge,$Marge+(($yc-1)*$Unite),$Marge,$Marge+($yc*$Unite),$couleur1);
    }
    }

    for($xc=1;$xc<=$XL;$xc++) {
    for($yc=1;$yc<=$YL;$yc++) {
    if($Hor[$xc][$yc]==1) {
    imageline($idImage,$Marge+(($xc-1)*$Unite),$Marge+($yc*$Unite),$Marge+($xc*$Unite),$Marge+($yc*$Unite),$couleur1);
    }
    if($Ver[$xc][$yc]==1) {
    imageline($idImage,$Marge+($xc*$Unite),$Marge+(($yc-1)*$Unite),$Marge+($xc*$Unite),$Marge+($yc*$Unite),$couleur1);
    }
    }
    }

    imagepng($idImage, 'temp/maze.png');

    ?>

  2. #2
    Membre éclairé
    Inscrit en
    Avril 2003
    Messages
    216
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 216
    Par défaut
    Jai trouvé il fallait enlevé le header en haut et faire un img src en bas
    merci qd meme

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

Discussions similaires

  1. Comment afficher un page html dans une apps?
    Par bygui dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 07/06/2006, 11h40
  2. Afficher une page html construite dans le logiciel [TSrings]
    Par xenos dans le forum Composants VCL
    Réponses: 4
    Dernier message: 21/03/2006, 21h32
  3. afficher une page html dans un jtextpane
    Par fievel dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 15/03/2006, 18h36
  4. [SGBD] afficher infos issues de php/mysql dans html
    Par php_de_travers dans le forum Requêtes
    Réponses: 11
    Dernier message: 22/10/2005, 01h28
  5. [vb.net][html] afficher une page html dans une interface vb?
    Par graphicsxp dans le forum Windows Forms
    Réponses: 1
    Dernier message: 29/09/2005, 18h31

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