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

Bibliothèques et frameworks PHP Discussion :

[GD] Problème avec des fonctions qui créent des éléments dans une image.


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2010
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2010
    Messages : 27
    Points : 20
    Points
    20
    Par défaut [GD] Problème avec des fonctions qui créent des éléments dans une image.
    Bonjour!

    Alors mon petit grand problème porte en effet sur des fonctions qui modifient mon image. En effet, quand j'exécute le code ci-dessous, il me sort plein de message d'erreur pour ImageFilledrectangle et imagestring:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Warning: imagefilledrectangle(): supplied argument is not a valid Image resource in /xxxxx/test2.php on line 176
     
    Warning: imagestring(): supplied argument is not a valid Image resource in /xxxx/test2.php on line 181

    Je pense que ça arrive car je suis en train d'utiliser une fonction pour dessiner l'imagestring et l'imagefilledrectangle et que du coup, il aime pas le passage en paramètre de $image. J'ai essayé de le mettre en entrée dans la fonction et de le sortir en return mais rien à faire . Je dois mal manipuler mon objet image quand je le passe en paramètre et je le récupère.



    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
    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
    58
    59
    #Variables pour le while
     
    	$c=10;#pour les array couleur
    	$h=60;#Ici la hauteur, va falloir la faire commencer depuis en haut et descendre progressivement.
     
    	while ($nb >=0)
    	{
     
    		$id=recupid($nb);
    		$image=drawproj($image, $id,$c,$h);
    		$c--;
    		$nb--;
    		$h=$h+50;
     
     
     
    	}
    	#Création de l'image
     
    	imagepng($image, "images/monimage.png"); // on enregistre l'image dans le dossier "images"
     
    	#Fonction connection BDD joomla.
     
    	function drawproj($id,$c,$h,$image)
    	{
     
    		$name = mysql_fetch_array(requete_joomla("SELECT nom FROM jos_projets WHERE idproj = '$id'"));
     
    		$dd = requete_joomla("SELECT ddebut FROM jos_projets WHERE idproj = '$id'");
    		$df = requete_joomla("SELECT dfin FROM jos_projets WHERE idproj = '$id'");
     
    		//récupération date début.
     
    		$row = mysql_fetch_array($dd);
    		$debut = $row['ddebut'];
    		$timestamp = strtotime($debut);
    		$year = date('Y', $timestamp);
    		$d=$dat[$year];
     
     
    		//récupération date de fin..
     
    		$row = mysql_fetch_array($df);
    		$fin = $row['dfin'];
    		$timestamp = strtotime($fin);
    		$year = date('Y', $timestamp);
    		$f=$dat[$year];
     
    		//Dessin du rectange
    		$hp30=$h+30;
    		ImageFilledRectangle ($image, $d, $h, $f, $hp30, $arr[$c]);
     
    		$dn=$d+3;
    		$hn=$h+7;
    		$nproj= utf8_decode($name[nom]);
    		imagestring($image, 3, $dn, $hn, $nproj, $noir);
     
    		return $image;
    	}
    S'il vous faut d'autres éléments du code hésitez pas et merci d'avance pour votre aide!

  2. #2
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2010
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2010
    Messages : 27
    Points : 20
    Points
    20
    Par défaut
    Bon alors j'ai avancé un peu, j'ai découvert qu'il faut ouvrir et fermer l'image un peu comme quand on fait du fopen et fclose. Du coup, j'ai modifié mon code comme suit (j'enlève le code qui n'a rien a voir avec le problème pour plus de clareté):

    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
    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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    <?php
     
     
     
     
    #Définition image et bases de couleur.
    $image = imagecreate(1000,1000);
    $blanc = imagecolorallocate($image, 255, 255, 255);
    .
    .
    .
    #####################
    ##Base du diagramme##
    #####################
     
    // Ici je déclare les bases du diagramme, je fout des lignes, des pointillés, du texte etc. Il n'y a que ceci qui s'affiche à la fin, toute la suite n'est pas prise en compte.
     
    imagepng($image, "images/monimage.png");
     
    #Fonction pour afficher les projets
    	$nb=$num_proj-1;
    	#Variables pour le while
     
    	$c=10;#pour les array image
    	$h=60;#Ici la hauteur, va falloir la faire commencer depuis en haut et descendre progressivement.
     
    	while ($nb >=0)
    	{
     
    		$id=recupid($nb);
    		$image=drawproj($id,$c,$h);
    		$c--;
    		$nb--;
    		$h=$h+50;		
    	}
    	#Création de l'image
    	//imagepng($image, "images/monimage.png"); // mis en commentaire car sinon ça retourne une erreur
     
     
    	function drawproj($id,$c,$h)
    	{
    		$image= imagecreatefrompng("images/monimage.png");
    		$name = mysql_fetch_array(requete_joomla("SELECT nom FROM jos_projets WHERE idproj = '$id'"));
     
    		$dd = requete_joomla("SELECT ddebut FROM jos_projets WHERE idproj = '$id'");
    		$df = requete_joomla("SELECT dfin FROM jos_projets WHERE idproj = '$id'");
    		//récupération date début.
    		.
    		.
     
    		//récupération date de fin..
    		.
                    .
                    //J'ai fait ce test pour m'assurer que le bug ne venais pas de ce que je tente de dessiner.
    		ImageFilledRectangle ($image, 20, 20, 70, 70, $noir);
     
                    //Aucun changement, voici mon code donc:
                    $hp30=$h+30;
    		ImageFilledRectangle ($image, $d, $h, $f, $hp30, $arr[$c]);
     
    		$dn=$d+3;
    		$hn=$h+7;
    		$nproj= utf8_decode($name[nom]);
    		imagestring($image, 3, $dn, $hn, $nproj, $noir);
     
    		imagepng($image, "new.png");
    		imagedestroy($image);
    	}
    Merci encore

  3. #3
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function drawproj($id,$c,$h)
    	{
    		global $image;
    		$name = mysql_fetch_array(requete_joomla("SELECT nom FROM jos_projets WHERE idproj = '$id'"));
     
    		$dd = requete_joomla("SELECT ddebut FROM jos_projets WHERE idproj = '$id'");
    		$df = requete_joomla("SELECT dfin FROM jos_projets WHERE idproj = '$id'");
    A+.

Discussions similaires

  1. Problème avec des dates dans une requête
    Par thomaso38 dans le forum Requêtes
    Réponses: 5
    Dernier message: 16/06/2016, 10h00
  2. Problème avec des guillemets dans une requête
    Par clairetj dans le forum Requêtes
    Réponses: 2
    Dernier message: 26/04/2011, 11h39
  3. Réponses: 1
    Dernier message: 22/08/2007, 15h48
  4. Réponses: 11
    Dernier message: 14/10/2006, 21h26
  5. Réponses: 9
    Dernier message: 25/09/2005, 16h33

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