Traitement d'images, afficher le résultat

Eléphanteau du PHP | 42 Messages

23 juin 2012, 10:39

Bonjour,

Débutant en traitement d'images, je voudrais afficher le résultat dans un tableau.
Le code ci-dessous ne fonctionne pas.
Où est ma faute ?

Merci,
Blaise

Code : Tout sélectionner

$filename = 'images/fleche.png'; $degrees = 15; imagepng($rotate); // Content type header('Content-type: image/png'); // Chargement $source = imagecreatefrompng($filename); // Rotation $rotate = imagerotate($source, $degrees, 0); // Affichage imagepng($rotate);

ViPHP
xTG
ViPHP | 7331 Messages

23 juin 2012, 10:42

Tu as deux fois l'instruction imagepng(), la première travaillant sur une variable qui n'existe pas encore. ;)

Eléphanteau du PHP | 42 Messages

23 juin 2012, 10:52

Ben oui ben non.
Je ne sais pas ce qu'il est venu faire là, mais la ligne supprimée, cela ne fonctionne toujours pas.

Code : Tout sélectionner

<?php // Fichier et degrés de rotation $filename = 'images/fleche.png'; $degrees = 15; // Content type header('Content-type: image/png'); // Chargement $source = imagecreatefrompng($filename); // Rotation $rotate = imagerotate($source, $degrees, 0); // Affichage imagepng($rotate); ?>

ViPHP
xTG
ViPHP | 7331 Messages

23 juin 2012, 11:01

Commentes le header et le imagepng pour vérifier qu'il n'affiche aucune erreur (fichier non trouvé par exemple).

Eléphanteau du PHP | 42 Messages

23 juin 2012, 11:17

Pas d'erreur, page blanche
Je suis avec EasyPHP, y a un réglage à faire ?

ViPHP
xTG
ViPHP | 7331 Messages

23 juin 2012, 12:14

L'affichage des erreurs dans le php.ini mais normalement il est configuré de base.
Laisses le header commenté et décommentes imagepng.
Tu devrais avoir le contenu du fichier d'affiché du coup.
Si toujours page blanche alors oui il y a une erreur mais les erreurs PHP ne sont pas affichées.
Tu peux auquel cas regarder le fichier de log de PHP ou bien activer leur affichage dans le php.ini (error_reporting).

Eléphanteau du PHP | 42 Messages

23 juin 2012, 13:34

Je pensais à un réglage pour les images. S'il y a erreur, les messages s'affichent bien.
L'image existe.

Avec que le header commenté, l'image s'affiche en ASCII

ViPHP
xTG
ViPHP | 7331 Messages

23 juin 2012, 15:43

La librairie GD est-elle bien installée et activée sur ton serveur ?
Je viens de tester le script et il fonctionne.

Eléphanteau du PHP | 42 Messages

23 juin 2012, 16:44

Oui, la libraire est bien active.

firefox est plus loquace : cette image ne peut être affichée car elle contient des erreurs

ViPHP
xTG
ViPHP | 7331 Messages

23 juin 2012, 17:14

Tu n'aurais pas des caractères non imprimables avant <?php ???
Cela pourrait expliquer le problème. :)

Eléphanteau du PHP | 42 Messages

23 juin 2012, 17:51

Le fichier complet

Code : Tout sélectionner

<?php /* Date de création: 23/06/2012 */ ?> <html> <body> <?php //phpinfo(); //echo '<img src="images/fleche.png" border="0" alt="">'; // Fichier et degrés de rotation $filename = 'images/NESW.png'; $degrees = 15; // Content type header('Content-type: image/png'); // Chargement $source = imagecreatefrompng($filename); // Rotation $rotate = imagerotate($source, $degrees, 0); // Affichage imagepng($rotate); ?> </body> </html>

ViPHP
xTG
ViPHP | 7331 Messages

23 juin 2012, 18:00

Ah bah ceci explique cela...
Ton header() spécifie une image mais tu envoies aussi du HTML. ;)

Voilà la correction.
Page d'affichage :
<html>
<body>
<img src="monScript.php" alt="" />
</body>
</html>
monScript.php
<?php
// Fichier et degrés de rotation
$filename = 'images/NESW.png';
$degrees = 15;
// Content type
header('Content-type: image/png');
// Chargement
$source = imagecreatefrompng($filename);
// Rotation
$rotate = imagerotate($source, $degrees, 0);
// Affichage
imagepng($rotate);
?>

Eléphanteau du PHP | 42 Messages

23 juin 2012, 18:19

Okay, comme cela ça fonctionne.
Mais comment fais-je lorsqu'il y a un mélange des deux ?
Tout le fichier doit être en php , y compris les balises <html> <head> ... ?

ViPHP
xTG
ViPHP | 7331 Messages

23 juin 2012, 18:26

Tu ne peux mélanger différents types de contenu.
Ce serait comme mélanger un fichier PDF avec un fichier MP3.
Comment le lecteur de musique serait capable de faire la distinction entre les deux dans le fichier ? Ce n'est absolument pas prévu ainsi.

Là c'est pareil pour le navigateur, il traite soit du text/html soit du image/png mais il ne peut traiter les deux en même temps.

Eléphanteau du PHP | 42 Messages

23 juin 2012, 18:41

Cela me laisse dubitatif.
J'ai une page météo et je veux afficher la direction du vent.
Je pensais trouver mon bonheur avec imagerotate, mais je ne suis pas plus avancé.
Tu vois mon problème ?

As-tu une solution, ou simplement me mettre sur la bonne voie ?

Merci en tout cas