Aller au menu - Aller au contenu

Créer des images en PHP

Pour accéder à cette section
Connectez-vous !
connexion_rpx
Page Précédente  1  2  3 
Pseudo Commentaire
Page Précédente  1  2  3 
Hors ligne Juns # Posté le 04/05/2010 à 20:27:13
Homo-Noeticus
Avatar

oups dsl pb de double message sorry

Qui a trait à la conscience et à l'étude de celle-ci
 
Hors ligne taibi # Posté le 18/05/2010 à 10:19:11

Bonjour a tous,

Je suis sur la partie des créations d'image, et lorsque je test les code, il m'affiche aucune image.
Si quelqu'un peut me venir en aide ça serait sympa.

Merci
Hors ligne Kenaryn # Posté le 21/07/2010 à 23:37:44
Fear the Power
Avatar

Avis : Mitigé

Bonjour,

J'ai le même problème que toi et d'autres.

J'ai recopié le code :

Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
<?php
header ("Content-type: image/png");
$image = imagecreate(200,50);

$orange = imagecolorallocate($image, 255, 128, 0);
$bleu = imagecolorallocate($image, 0, 0, 255);
$bleuclair = imagecolorallocate($image, 156, 227, 254);
$noir = imagecolorallocate($image, 0, 0, 0);
$blanc = imagecolorallocate($image, 255, 255, 255);

imagestring($image, 4, 35, 15, "Salut les Zéros !", $blanc);

imagepng($image);
?>


Mais ça affiche le message d'erreur suivant :

Code : PHP
1
L'image “http://127.0.0.1/test/creer_une_image.php” ne peut être affichée car elle contient des erreurs.


Quelqu'un avait répondu que ça se produisait quand il n'y avait aucun contenu, mais là en l'occurrence, il y a une zone de couleur + une chaine de caractère donc c'est étrange...

EDIT:
J'avoue que je ne comprend pas bien quelle partie de code doit être AVANT le code HTML et quelle partie de code doit être APRES !

Quelqu'un saurait expliquer svp?
Merci :)
 
Hors ligne Dedepc # Posté le 09/08/2010 à 18:11:22
Avatar

La partie devant se placer avant tout code HTML est la fonction header().
Par contre, chose étrange, pour moi, l'erreur n'apparaît plus (et l'image se crée correctement) si j'enlève ce header()
Pourquoi ? Aucune idée :( ...
Hors ligne Vyse # Posté le 18/08/2010 à 14:11:17
Avatar

Avis : Très bon

Cete partie pour générer des images est excellente, encore heureux qu'ils ont fait des librairie pour que le PHP fasse plus que du HTML.
Merci a toi M@téo21 pour montrer cette partie là, elle peu vraiment être utile a certain ;)
(d'ailleurs, j'ai acheté les 2 bouquins, et j'adore ^^, merci a toi, a ton idée de site, et a tes cours si excellents )

Image utilisateur
 
Hors ligne baya_h # Posté le 25/08/2010 à 13:43:15
Avatar

Salut à tous,
J'ai eu le même problème que taibi lorsque j'utilise des images png, mais avec jpeg ça marche, quel est le problème SVP?
Connecté ko_ok70 # Posté le 28/08/2010 à 15:00:01
@silence
Avatar

bonjour oui même problème mais après qq heures de casse tête.
le problème et en rapport avec l'encodage!!!!!!
quand j’enregistre ma page en UTF-8 rien ne s'affiche
au contraire l'image s'affiche bien avec d'autre encodage!!!!!!
c'est bizarre
Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
<?php
header ("Content-type: image/png");
$image = imagecreate(200,50);

$orange = imagecolorallocate($image, 255, 128, 0);
$bleu = imagecolorallocate($image, 0, 0, 255);
$bleuclair = imagecolorallocate($image, 156, 227, 254);
$noir = imagecolorallocate($image, 0, 0, 0);
$blanc = imagecolorallocate($image, 255, 255, 255);

imagepng($image);
?>

Mes yeux de Coleur # :D ;)
 
Hors ligne garedo # Posté le 18/10/2010 à 15:43:30
Avatar
Flux RSS

Excellent, juste ce que je cherchais.

Et j'ai tout compris :D

ps: merci Almaju pour la fonction

Un gitan ça sent bon, ça se lave sans savon...
 
Hors ligne theo77186 # Posté le 21/10/2010 à 18:27:16

Avis : Très bon

J'ai copié exactement le code suivant
Code : PHP
1
2
3
4
5
6
<?php
header ("Content-type: image/png"); // 1 : on indique qu'on va envoyer une image PNG
$image = imagecreate(200,50); // 2 : on crée une nouvelle image de taille 200x50
// 3 : on s'amuse avec notre image (on va apprendre à le faire)
imagepng($image); // 4 : on a fini de faire joujou, on demande à afficher l'image
?>

et il m'affiche:
Code : HTML
1
2
<br />
<b>Warning</b>:  imagepng() [<a href='function.imagepng'>function.imagepng</a>]: gd-png error: no colors in palette in <b>image.php</b> on line <b>5</b><br />

alors que ceci marche:
Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
<?php
header ("Content-type: image/png");
$image = imagecreate(200,50);

$orange = imagecolorallocate($image, 255, 128, 0);
$bleu = imagecolorallocate($image, 0, 0, 255);
$bleuclair = imagecolorallocate($image, 156, 227, 254);
$noir = imagecolorallocate($image, 0, 0, 0);
$blanc = imagecolorallocate($image, 255, 255, 255);

imagestring($image, 4, 35, 15, "Salut les Zéros !", $blanc);

imagepng($image);
?>

comment faire???
Hors ligne Claw69 # Posté le 03/12/2010 à 10:46:00

Avis : Très bon

Bonjour,

Pour info et pour aller dans le sens du post de Phil836 du 27/04/2009, je n'ai pas eu moi non plus à activer php_gd2 dans WAMPserver, il l'était déjà par défaut.

Bonne journée
 
Hors ligne Luxerails # Posté le 20/12/2010 à 18:49:56
aaaaaaaaaaa.
Avatar

J'ai exactement copié ce code, le même que le tuto :
Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
<?php
header ("Content-type: image/png");
$image = imagecreate(200,50);

$orange = imagecolorallocate($image, 255, 128, 0);
$bleu = imagecolorallocate($image, 0, 0, 255);
$bleuclair = imagecolorallocate($image, 156, 227, 254);
$noir = imagecolorallocate($image, 0, 0, 0);
$blanc = imagecolorallocate($image, 255, 255, 255);

imagestring($image, 4, 35, 15, "Salut les Zéros !", $blanc);

imagepng($image);
?>


Mais quand j'ouvre le fichier, ça affiche rien du tout, juste du blanc :x

<position valeur="centre">Image utilisateur
 
Hors ligne Spirit57 # Posté le 28/12/2010 à 12:02:07
Avatar

Avis : Très bon

Ville : Walscheid
Pays : France métropolitaine

Alors moi je suis le cours depuis le début et je pense que ca doit être ts bien de suivre ce tuto ci néamoins je ne sais pour quelle raison ca ne marche pas mais pas grave ^^ ca reste facultatif dans l'aprentissage du PHP :)
Hors ligne mglalex # Posté le 12/01/2011 à 17:40:57

Avis : Très bon

Bonjour,
J'ai un problème avec la librairie GD. Lorsque je fusionne une image avec une autre que j'ai créé avec imagecreate, il prends les couleurs que j'ai défini avec imagecolorallocate.
Je sais pas si j'ai été clair donc je vous poste mon code ^^
Code : PHP
 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
<?php
header("Content-type: image/png");

$source = imagecreatefrompng('images/imgjourtop.png');
$imgjour = imagecreatefrompng('images/imgj14.png');

$hauteur_imgjour = imagesy($imgjour);
$largeur_imgjour = imagesx($imgjour);

//Fonctions pour mettre le texte sur plusieurs lignes
$string = "La légende de l'image du jour ici";
$string = wordwrap($string, 32, '$');
$champs = explode ('$', $string);

$boucle1=0;
while ($boucle1 < sizeof($champs)) {
$boucle1++;
}
$hauteur_txt = (12*$boucle1)+4;

$cordonnee = 42 + $hauteur_imgjour + 15;

$hauteur = 32 + $hauteur_imgjour + 15 + $hauteur_txt;
$x = 180; //largeur de mon image
$y = $hauteur; //hauteur de mon image (selon le texte ecrit)

$image = imagecreate($x,$y);
$boucle=0;
while ($boucle < sizeof($champs)) {
	$couleur = imagecolorallocate($image, 208, 42, 124);
	$blanc = imagecolorallocate($image, 255, 255, 255);
	imagettftext($image, 9, 0, 2, $cordonnee, $blanc, '/arial.ttf', $champs[$boucle]);
    $boucle++;
    $cordonnee = $cordonnee+12;
}

//Traitement de l'image
$centre = ($x - $largeur_imgjour) / 2; //Affiche l'image au centre
imagecopymerge($image, $source, 0, 0, 0, 0, 180, 32, 100);
imagecopymerge($image, $imgjour, $centre, 42, 0, 0, 171, 65, 100);

$nom_image = "img_test";
imagepng($image);
imagedestroy($image);
?>


Je vous remercie d'avance pour votre aide :)
Hors ligne balichou # Posté le 17/02/2011 à 23:41:10
Avatar

A vous maintenant d'écrire la page copyrighter.php. ;)
Si vous vous basez sur le script que je vous ai donné, ça ne devrait pas être bien long. Il faut juste récupérer le nom de l'image à charger (via la variable $_GET['image']). Arf, ça y est je vous ai tout dit. :p


Peux-tu me donner le contenu de copyrighter.php ???

Programmez proprement, non de Zeus !!!
Au pire, commentez votre code ...
 
Hors ligne balichou # Posté le 18/02/2011 à 16:03:02
Avatar

ne pas tenir compte de ma question car il suffit de :

copyrighter.php

Code : PHP
 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
<?php
header ("Content-type: image/jpeg"); // L'image que l'on va créer est un jpeg

$nomImage = $_GET['image'];

// On charge d'abord les images
$source = imagecreatefrompng("img_site/logo.png"); // Le logo est la source
$destination = imagecreatefromjpeg($nomImage); // La photo est la destination

// Les fonctions imagesx et imagesy renvoient la largeur et la hauteur d'une image
$largeur_source = imagesx($source);
$hauteur_source = imagesy($source);
$largeur_destination = imagesx($destination);
$hauteur_destination = imagesy($destination);

// On veut placer le logo en bas à droite, on calcule les coordonnées où on doit placer le logo sur la photo
$destination_x = $largeur_destination - $largeur_source;
$destination_y =  $hauteur_destination - $hauteur_source;

// On met le logo (source) dans l'image de destination (la photo)
imagecopymerge($destination, $source, $destination_x, $destination_y, 0, 0, $largeur_source, $hauteur_source, 20);

// On affiche l'image de destination qui a été fusionnée avec le logo
imagejpeg($destination);
?>

Programmez proprement, non de Zeus !!!
Au pire, commentez votre code ...
 
Hors ligne semper_fi # Posté le 01/06/2011 à 14:25:15

salut super tuto, moi j'aimerai transformer un tableau en une image mais même après avoir lu et relu le tuto je ne vois toujours pas comment faire. Est ce qu'il serait possible que quelqu'un puisse m'aider à partir sur de bonne base? merci d'avance
Hors ligne anonyme # Posté le 03/07/2011 à 22:46:34

Super tuto, comme d'hab' Image utilisateur.

Mais moi avec WAMP ça marche pas la librairie GD :( !
Hors ligne Divin # Posté le 16/07/2011 à 18:28:09
Avatar

Bonjour à tous,

J'ai suivi le tuto http://www.siteduzero.com/tutoriel-3-1 [...] s-en-php.html
et ai créé :
1 image de fond avec du texte format PNG
1 image réduite PNG (transparent)

Lorsque je compile les deux images celle du dessus à un fond "Noir"

Voici en images :
Image utilisateur Image crée avec texte
Image utilisateur Image à insérer qui a été réduite
Image utilisateur Images combinées

Quelqu'un aurait-il la solution ?

Merci


Edition : Je poste la solution (à adapter) si quelqu'un a le même problème...
<?php

$photoImage = ImageCreateFromJPEG('photo.jpg');
ImageAlphaBlending($photoImage, true);

$logoImage = ImageCreateFromPNG('logo.png');
$logoW = ImageSX($logoImage);
$logoH = ImageSY($logoImage);

ImageCopy($photoImage, $logoImage, 0, 0, 0, 0, $logoW, $logoH);

ImageJPEG($photoImage);

ImageDestroy($photoImage);
ImageDestroy($logoImage);

?>
Hors ligne benjamin9619 # Posté le 31/07/2011 à 18:51:42
Avatar

Avis : Très bon

La librairie GD est activée sur l'hébergeur dalctournai-network.Pour le nom de domaine qui vous sera demande vous pouvez aler sur azote.org

L'hebergeur est gratuit

Image utilisateur
 
Hors ligne roillion # Posté le 30/08/2011 à 18:48:09
dragonsworld
Avatar

Avis : Très bon

Bon tuto mais c'est dommage de ne pas parler de la fusion d'image avec des images transparentes...

Site créé grâce au sdz, j'ai nommé: DragonsWorldImage utilisateur



Image utilisateur
 
Connecté ko_ok70 # Posté le 29/10/2011 à 17:34:01
@silence
Avatar

très bon tuto

je demande si Mr M@teo peut compléter cette partie de cours sur ffmpeg-php (une extension pour PHP)
php peut aussi générer des fichiers vidéo/audio


ffmpeg-php est une extension pour PHP qui ajoute un outil facile à utiliser, API orientée objet permettant d'accéder et extraire des informations à partir de fichiers vidéo et audio. Il a des méthodes pour le retour des cadres à partir des fichiers vidéo que des images qui peuvent être manipulés à l'aide de PHP les fonctions d'image . Cela fonctionne bien pour créer automatiquement des images miniatures à partir de films.
ffmpeg-php est aussi utile pour signaler la durée et le bitrate de fichiers audio (MP3, WMA ...). ffmpeg-php pouvez accéder à de nombreux formats vidéo pris en charge par ffmpeg (mov, avi, mpg, wmv ...)
site officiel

Mes yeux de Coleur # :D ;)
 
Hors ligne similieng # Posté le 25/01/2012 à 21:24:06

Pour ceux qui ont (des le départ) un message du style :

L'image “http://[...]/creer_une_image.php” ne peut être affichée car elle contient des erreurs.

Sachez que si le fichier image commence par un retour chariot il faut l'enlever, ca peut résoudre le problème. Le fichier doit donc commencer directement par : <php header ("Content-type: image/jpeg");...blablabla
Hors ligne pkmnlio # Posté le 02/02/2012 à 09:21:29

Ville : Gouvernes
Pays : France métropolitaine

Bonjour,

J'essaie en vain de creer une image depuis une page web.
En gros convertir une page php en image.
En lisant le tuto, j'ai cru comprendre qu'il suffisait de mettre un header et une balise img.

Ce qui me donne :
Code : PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
<?php
header("Content-type: image/jpg");
?>
<html>
<head>
</head>
<body>
<img src="Contact.php" />
</body>
</html>


Ma page contact n'a aucune erreur car c'est du simple html.
Pourtant au final j'obtiens l'erreur
Citation : Php Error
L'image "http://localost/test.php" ne peut être affichée car elle contient des erreurs


Est-ce que vous pouvez m'aider car mon "projet" final serait de créer une image a partir d'un tableau html contenant texte et image. Ce qui me serait nettement plus facile que de creer une image et lui rajouter les elements 1 par 1.

Merci d'avance
Hors ligne LepetitReveur # Posté le 17/02/2012 à 21:01:48

Bonjours, j'ai la même erreurs que la plupart des gens :


"http://localost/test.php" ne peut être affichée car elle contient des erreurs."

Je ne comprends pas du tout cette erreur... Si quelqu'un peut m'aider !

Cordialement Benjamin T
Hors ligne kontas # Posté le 22/02/2012 à 08:01:34

Avis : Très bon

Merci beaucoup pour ce tuto, aucun problème pour le mettre en place. Par contre j'ai voulu appliquer une police particulière sur mes texte et je n'ai pas réussi :/ , j'ai un message d'erreur.
Hors ligne oloïd # Posté le 24/04/2012 à 18:53:01
Avatar

Merci pour ces Excellents Tutos!

Pour ceux que ça intéresse je propose ce code qui garde les proportions de l'image en la réduisant. ^^
Code : PHP
 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
<?php
header ("Content-type: image/jpeg");
$source = imagecreatefromjpeg("image.jpg"); 

$dim=getimagesize('image.jpg');	//renvoie largeur, hauteur et d'autres données
$largeur=$dim[0];
$hauteur=$dim[1];
$taille_max=300;	//taille maximale de l'image en sortie. Ici 300 px

if($largeur > $hauteur)
{	
	$coef=$largeur/$taille_max;
	$largeur=$largeur/$coef;	
	$hauteur= intval($hauteur/$coef);
}
else
{
	$coef=$hauteur/$taille_max;
	$hauteur=$hauteur/$coef;	
	$largeur= intval($largeur/$coef);
}
$destination = imagecreatetruecolor($largeur, $hauteur); 
imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur, $hauteur, $dim[0], $dim[1]);

imagejpeg($destination);
?>
Pour accéder à cette section
Connectez-vous !
connexion_rpx