Création d'image

Résolu/Fermé
pontarose Messages postés 150 Date d'inscription vendredi 10 août 2007 Statut Membre Dernière intervention 23 avril 2010 - 6 nov. 2008 à 12:56
pontarose Messages postés 150 Date d'inscription vendredi 10 août 2007 Statut Membre Dernière intervention 23 avril 2010 - 20 janv. 2009 à 14:05
Bonjour,

Je travaille sur PHP.
J'aimerais créer une image dynamiquement qui dépendra des données stockées dans ma base de données.
Cette image sera reconstitué à chaque appel ou rafraîchissement de la page HTML.

Pourriez vous me dire comment je dois procéder, existe t-il une librairie me permettant de faire des graphiques, est-ce que cela entraînera une consommation importante de ressources sur mon server (dans ce cas comment y remédier)

Merci d'avance
A voir également:

2 réponses

Ca consomme un peu de ressources oui ! Mais pas des masses, à voir si tu es hébergé en shared, private ou dédié, et surtout si tu as 5 ou 50000 affichages à l'heure !

La librairie utilisée est la lib GD.
exemple : http://free.box.free.fr/info.php3 (au hasard, merci google) et tu cherches dans la page :GD Support
Là tu auras certainement une version indiquée.
Après, tu te cherches un ou 2 tuto, voir éventuellement les bouts de code proposés sur php.net.
Pars de là imagecreatefromjpeg : https://www.php.net/imagecreatefromjpeg
et le code :

<?php
function LoadJpeg($imgname) {
$im = @imagecreatefromjpeg($imgname); /* Tentative d'ouverture */
if (!$im) { /* Vérification */
$im = imagecreatetruecolor(150, 30); /* Création d'une image blanche */
$bgc = imagecolorallocate($im, 255, 255, 255);
$tc = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 150, 30, $bgc);
/* Affichage d'un message d'erreur */
imagestring($im, 1, 5, 5, "Erreur de chargement de l'image $imgname", $tc);
}
return $im;
}
header("Content-Type: image/jpeg");
$img = LoadJpeg("bogus.image");
imagejpeg($img);
?>

Voilà, en gros.

Bon courage,

Arnaud
0
pontarose Messages postés 150 Date d'inscription vendredi 10 août 2007 Statut Membre Dernière intervention 23 avril 2010 2
7 nov. 2008 à 10:16
Bpnjour,

Merci de cette réponse...
0
pontarose Messages postés 150 Date d'inscription vendredi 10 août 2007 Statut Membre Dernière intervention 23 avril 2010 2
7 nov. 2008 à 16:14
bonjour,

j'ai installé la librairie GD
sous linux -> en ajoutant dans le php.ini extension=gd.so
sous EasyPHP -> en enlevant le ; devant l'instruction extension=php_gd2.dll

Cependant, j'obtiens le message suivant: Fatal Error Call to undefined function imagecreatetruecolor() in ../../..on line XX
voici mon script

$im = imagecreatetruecolor (50, 100) or die ("Impossible de crée un flux d'image GD");
$text_color = imagecolorallocate ($im, 233, 14, 91);
imagestring ($im, 1, 5, 5, "Une simple chaîne de texte", $text_color);
imagepng ($im);

Si je met @devant imagecreatetruecolor la page reste blanche et je n'ai pas de message d'erreur.

Je ne comprend pas ce qu'il se passe peut-on m'aider?
Merci d'avance
Margot
0
pontarose Messages postés 150 Date d'inscription vendredi 10 août 2007 Statut Membre Dernière intervention 23 avril 2010 2 > pontarose Messages postés 150 Date d'inscription vendredi 10 août 2007 Statut Membre Dernière intervention 23 avril 2010
10 nov. 2008 à 13:01
bonjour,

je cherche toujpurs une solution à mon problème;
j'ai bien en tout début de mon code header("Content-type: image/png");

J'ai tapé sous root apt-get install php_gd(puisphp_gd2) mais j'obtiens le message suivant: impossible de trouver le paquet php_gd

de plus en tapant php phpinfo.php a aucun moment je ne vois apparaître d'information sur gd.
0
pontarose Messages postés 150 Date d'inscription vendredi 10 août 2007 Statut Membre Dernière intervention 23 avril 2010 2 > pontarose Messages postés 150 Date d'inscription vendredi 10 août 2007 Statut Membre Dernière intervention 23 avril 2010
10 nov. 2008 à 15:41
Bonjour,

J'ai résolu une partie de mon problème; en effet j'ai réussi à installer la librairie gd en fesant
1.apt-get update(mise à jour) puis
2.apt-get install php5_gd sous root (je ne mettais pas le 5 de php)
en fesant php phpinfo.php
j'obtiens:
gd

GD Support => enabled
GD Version => 2.0 or higher
FreeType Support => enabled
FreeType Linkage => with freetype
FreeType Version => 2.2.1
T1Lib Support => enabled
GIF Read Support => enabled
GIF Create Support => enabled
JPG Support => enabled
PNG Support => enabled
WBMP Support => enabled

en fesant
<?php
//on appelle la session
session_start();

//on teste que la personne qui accède a cette page est bien passée par le formulaire d'entré du login et mot de passe
if(isset($_SESSION['user_login']))
{
header("Content-type: image/png");
$user_login=$_SESSION['user_login'] ;

print("You are logged as <b>$user_login</b><br><br>");

}
else
{

header ("Location: form_identification.html");
}
?>

<?php
$image = imagecreatetruecolor (50,100) or die ("Impossible de crée un flux d'image GD");
imagepng ($image);
?>
j'obtiens le message suivant
L'image"http://..." ne peut être affichée car elle contient des erreurs.
si j'affiche le code source de la page il apparait
You are logged as...
%PNG
???
IHDR???2???d???KSO???&IDAThiA1???A oOm??????????????...




Néanmoins lorsque je change la position du header (header("Content-type: image/png");), j'obtiens le message ci-dessus:
�PNG ��� IHDR���2���d���K�����&IDATh���1��� �Om ������������������:��%������IEND�B`


Voici le script:
<?php
//on appelle la session
session_start();
//on teste que la personne qui accède a cette page est bien passée par le formulaire d'entré du login et mot de passe
if(isset($_SESSION['user_login']))
{
$user_login=$_SESSION['user_login'] ;

print("You are logged as <b>$user_login</b><br><br>");

}
else
{
header("Content-type: image/png");
header ("Location: form_identification.html");
}
?>

<?php
$image = imagecreatetruecolor (50,100) or die ("Impossible de crée un flux d'image GD");
imagepng ($image);
?>


Pouvez vous m'aider s'il vous plaît?
0
pontarose Messages postés 150 Date d'inscription vendredi 10 août 2007 Statut Membre Dernière intervention 23 avril 2010 2 > pontarose Messages postés 150 Date d'inscription vendredi 10 août 2007 Statut Membre Dernière intervention 23 avril 2010
20 janv. 2009 à 14:05
bonjour ,
merci;
Du fait qu'il n'est pas possible d'intégrer une image dans une page HTML je dois insérer ceci dans mon script
print("<img src='test_image.php?'>");

et dans mon script test_image.php mettre les élements me permettant d'afficher mon image.

Soit
<?php
//on appelle la session
session_start();
//on teste que la personne qui accède a cette page est bien passée par le formulaire d'entré du login et mot de passe
if(isset($_SESSION['user_login']))
{
$user_login=$_SESSION['user_login'] ;

print("You are logged as <b>$user_login</b><br><br>");

}
else
{
header ("Location: form_identification.html");
}
?>


<?php
print("<img src='test_image.php?'>");
?>


et dans test_image.php

$x = 210;
$y = 120;

$im = imagecreatetruecolor ($x,$y) or die ("Impossible de crée un flux d'image GD");
imagepng ($im);
0
Grunt Messages postés 2773 Date d'inscription jeudi 17 janvier 2008 Statut Contributeur Dernière intervention 3 avril 2009 301
7 nov. 2008 à 16:24
Tu peux essayer le SVG aussi ;+)
0