Page 1 sur 1

Probleme de header avec fonction imagefilter

Posté : 17 févr. 2021, 12:18
par ricolaos
Bonjour à tous,
J'utilise la fonction imagefilter pour pixeliser mes images, le code suivant fonctionne parfaitement :

Code : Tout sélectionner

$nom_fichier='../imgList/cat.jpg'; $image = @imagecreatefromjpeg($nom_fichier); header('Content-Type: image/jpg'); imagefilter($image, IMG_FILTER_PIXELATE, 13, true); imagejpeg($image); imagedestroy($image);
Le problème c'est que le navigateur m'affiche uniquement l'image, je ne peux pas ajouter du code...dès que j'en ajoute cela génère l'erreur :
L'image https://localhost/inc/showimage.php ne peut être affichée car elle contient des erreurs
Que ce soit du code Php ou HTML...même erreur
Je pense que cela vient du fait de la ligne header...si je retire cette ligne l’affichage de l'image plante.

Quelqu'un à une idée ? Merci d'avance !

Re: Probleme de header avec fonction imagefilter

Posté : 17 févr. 2021, 14:07
par or 1
pour que cela marche, il faut que cela retourne l'image et c'est tout. cela n'a aucun sens de vouloir ajouter du html ensuite dans ce script. la page html a une balise img avec comme src https://localhost/inc/showimage.php et peut avoir avant et après du html.

Re: Probleme de header avec fonction imagefilter

Posté : 17 févr. 2021, 14:17
par ricolaos
En fait je dois écrire du code car je compte afficher dynamiquement plusieurs images.
Ainsi le nom de mes images sont stockées dans ma bdd mysql. L'idée c'est de boucler sur la table 'Images' et d'afficher sur une même pages toutes les images de ma bdd, ainsi que les paramètres de pixelisatlon... d'où la nécessité d'écrire du code.

Re: Probleme de header avec fonction imagefilter

Posté : 17 févr. 2021, 14:24
par or 1
plusieurs images -> plusieurs balises img dans la page html.
il est aussi possible de créer un montage de plusieurs images en une seule mais cela doit se terminer par
imagejpeg($image);
imagedestroy($image);

Re: Probleme de header avec fonction imagefilter

Posté : 17 févr. 2021, 14:38
par ricolaos
Je pense que je m'exprime mal.
En fait je dois afficher des images de façon dynamique.

Les images sont stockées dans un repertoires.
Les variables d'effet (le degré de pixelisatlon) et le nom des images sont stockées dans une table de ma bdd mysql.

Je dois pouvoir lister (afficher) mes images en applicant la fonction imagefilter (pour les pixelliser) pour chaque image d'où le soucis d'ecriture de code.

Re: Probleme de header avec fonction imagefilter

Posté : 17 févr. 2021, 14:41
par or 1
le code html de la page est généré par du php qui va parcourir le contenu du répertoire, de la bdd et ajouter des balises img avec comme src showimage.php?param=value

Re: Probleme de header avec fonction imagefilter

Posté : 17 févr. 2021, 14:49
par ricolaos
Effectivement, pas de soucis pour cela. J'arrive sans problème a récupérer le nom de mon image et la variable de pixellisation depuis ma bdd.

Le problème c'est l'affichage de l'image avec la fonction imagefilter (que je dois utiliser pour appiiquer l'effet de pixellisation). Pour faire apparaitre chaque image avec son effet je dois passer par header(), voir mon code plus haut...et du coup impossible d'écrire cette boucle mysql.

Re: Probleme de header avec fonction imagefilter

Posté : 17 févr. 2021, 14:55
par or 1
la boucle est dans le code php qui génère les balises img
dans showimage.php il faut savoir grâce au paramètre passé quelle est l'image à manipuler, pas de boucle à faire.

Re: Probleme de header avec fonction imagefilter

Posté : 17 févr. 2021, 15:06
par ricolaos
Je dois :
Récupérer le nom de chaque image
Appliquer l'effet à chaque image
Afficher chaque image
Le tout dans une même page.

Re: Probleme de header avec fonction imagefilter

Posté : 17 févr. 2021, 18:55
par or 1
dans le code php qui génère la page html :
https://www.php.net/manual/fr/function.glob.php

afficher chaque image dans la boucle :
<img src="showimage.php?image<?php echo $filename; ?>" ... />

dans showimage.php faire le traitement à partir du paramètre image.