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

Langage PHP Discussion :

Script creation d'image [PHP 5.3]


Sujet :

Langage PHP

  1. #1
    Membre actif
    Homme Profil pro
    Webmaster - Développeur/intégrateur web
    Inscrit en
    Septembre 2011
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Webmaster - Développeur/intégrateur web
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2011
    Messages : 210
    Points : 246
    Points
    246
    Par défaut Script creation d'image
    Bonjour à toutes et tous !

    Je ne sais pas si c'est la météo ou le retour de vacance... ou les 2 mais en ce moment je suis à la rue

    Impossible de faire fonctionner ce foutu script de 4 lignes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $im = imagecreatefromjpeg('profil.jpg');
    var_dump($im); //-> affiche "resource(3, gd)"
    header("Content-type: image/jpeg"); //essayé à différents endroits
    imagejpeg($im);
    imagedestroy($im); //j'ai essayé avec et sans...
    Comme vous l'aurez compris le but est de créer une image avec ce script, mais ca ne fonctionne pas.

    J'ai essayé avec plusieurs navigateurs, Firefox me dit : "L'image « http://localhost/site/photo.php » ne peut être affichée car elle contient des erreurs.", les autres affichent une image vide (enfin comme si l'image était introuvable...) . J'ai aussi essayé avec différentes images.

    Qui peut me dire où est ce que je me plante ??


    Merci d'avance pour vos lumières !
    Si vous avez besoin d'une librairie permettant de gérer facilement les fichiers et les dossiers en PHP... ou si vous êtes juste curieux(se) :
    https://github.com/moDevsome/moFilesManager

    N'hésitez pas à me faire un retour

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Le var_dump, il s'affiche où d'après toi ?
    Une fois que tu as fait ton var_dump, tu crois que ton header() est correct du coup ? Tu crois aussi qu'envoyer des headers après avoir commencé l'affichage, ça fonctionne ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre actif
    Homme Profil pro
    Webmaster - Développeur/intégrateur web
    Inscrit en
    Septembre 2011
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Webmaster - Développeur/intégrateur web
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2011
    Messages : 210
    Points : 246
    Points
    246
    Par défaut
    Le var_dump() s’affiche uniquement si il est suivis d'un "die()", sinon c'est l'image qui prend le dessus.

    Si je ne fais pas de var_dump ca ne fonctionne pas mieux...

    Voici le code original :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    header("Content-type: image/jpeg");
     
    $im = imagecreatefromjpeg('profil.jpg');
    imagejpeg($im);
     
    imagedestroy($im);

    Je ne comprend pas, je respecte bien l'ordre : 1.je définis le type de contenu avant toute sortie; 2.je prépare mon contenu; 3.J'affiche mon contenu;
    Si vous avez besoin d'une librairie permettant de gérer facilement les fichiers et les dossiers en PHP... ou si vous êtes juste curieux(se) :
    https://github.com/moDevsome/moFilesManager

    N'hésitez pas à me faire un retour

  4. #4
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Enlève ton header , appel ton script et tu verras quelles sont les erreurs.
    Si il n'ya pas d'erreur tu n'auras que tu code binaire d'affiché
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Citation Envoyé par Soundboy39 Voir le message
    Le var_dump() s’affiche uniquement si il est suivis d'un "die()", sinon c'est l'image qui prend le dessus.
    Ce n'est pas parce que tu ne le vois pas qu'il ne s'écrit pas Sans le die, le résultat du var_dump fait partie du code source de l'image (du coup, ça m'étonnerait beaucoup que ça affiche quelque chose)

    Tu es sûr d'avoir accès à profil.jpg là où tu es ? Tu peux ajouter une vérification avec file_exists histoire d'être sûr :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (!file_exists('profil.jpg')) {
        die('profil.jpg non trouve');
    }
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  6. #6
    Membre actif
    Homme Profil pro
    Webmaster - Développeur/intégrateur web
    Inscrit en
    Septembre 2011
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Webmaster - Développeur/intégrateur web
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2011
    Messages : 210
    Points : 246
    Points
    246
    Par défaut
    Citation Envoyé par grunk Voir le message
    Enlève ton header , appel ton script et tu verras quelles sont les erreurs.
    Si il n'ya pas d'erreur tu n'auras que tu code binaire d'affiché
    Oui je vois bien le "code binaire" de l'image si je ne fais pas de header, par contre je ne sais pas si il est correcte, est ce que je suis censé avoir uniquement des 0 et des 1 ?
    est ce qu'il existe un moyen de vérifier le code pour savoir si le problème ne viens pas de la ressource ?

    Citation Envoyé par Celira Voir le message
    Tu es sûr d'avoir accès à profil.jpg là où tu es ? Tu peux ajouter une vérification avec file_exists histoire d'être sûr
    Oui j'ai déjà vérifié le fichier est bien chargé, il se trouve dans le même dossier que mon script. D'ailleurs je pense que dans le cas contraire "imagecreatefromjpeg()" me retournerais FALSE.

    J'ai aussi essayé d'appeler l'image depuis un autre fichier php en faisant '<img src="photo.php" />' mais ça ne fonctionne pas. L'image n'est pas trouvé.

    J'ai vidé le cache du navigateur... essayé avec d'autres navigateurs... essayé dans d'autres dossier... je ne vois pas le bout.
    Si vous avez besoin d'une librairie permettant de gérer facilement les fichiers et les dossiers en PHP... ou si vous êtes juste curieux(se) :
    https://github.com/moDevsome/moFilesManager

    N'hésitez pas à me faire un retour

  7. #7
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Bon j'ai essayé en copiant-collant ton code, et chez moi ça fonctionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    header("Content-type: image/jpeg");
     
    $im = imagecreatefromjpeg('404.jpg');
    imagejpeg($im);
     
    imagedestroy($im);
    mon image 404.jpg étant juste à côté du script PHP.

    Est-ce que si tu essayes avec une autre image, ça ne fonctionne pas non plus ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  8. #8
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Citation Envoyé par Soundboy39 Voir le message
    Oui je vois bien le "code binaire" de l'image si je ne fais pas de header, par contre je ne sais pas si il est correcte, est ce que je suis censé avoir uniquement des 0 et des 1 ?
    est ce qu'il existe un moyen de vérifier le code pour savoir si le problème ne viens pas de la ressource ?
    Tu ne vas pas voir des 0 et des 1 juste des suites de caractères sans aucune signification.
    Si c'est un jpg tu devrais voir en début de fichier quelque chose comme
    ÿØÿà JFIF
    Une solution pour vérifier la validité des données c'est de copier ce qui est affiché dans un fichier test.jpg (par exemple) et essayer de l'ouvrir.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  9. #9
    Membre actif
    Homme Profil pro
    Webmaster - Développeur/intégrateur web
    Inscrit en
    Septembre 2011
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Webmaster - Développeur/intégrateur web
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2011
    Messages : 210
    Points : 246
    Points
    246
    Par défaut
    Citation Envoyé par Celira Voir le message
    Est-ce que si tu essayes avec une autre image, ça ne fonctionne pas non plus ?
    J'ai essayé avec 4 images différentes, j'ai aussi essayé sur serveur distant ça ne fonctionne pas mieux...
    Si vous avez besoin d'une librairie permettant de gérer facilement les fichiers et les dossiers en PHP... ou si vous êtes juste curieux(se) :
    https://github.com/moDevsome/moFilesManager

    N'hésitez pas à me faire un retour

  10. #10
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut


    Bon, le dernier test auquel je pense : réécrire le script (sans copier-coller) dans un nouveau fichier, au cas où il y aurait des caractères spéciaux invisibles qui trainent (genre espace insécable)
    Après, je n'ai plus d'idées...
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  11. #11
    Membre actif
    Homme Profil pro
    Webmaster - Développeur/intégrateur web
    Inscrit en
    Septembre 2011
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Webmaster - Développeur/intégrateur web
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2011
    Messages : 210
    Points : 246
    Points
    246
    Par défaut
    C'est bon ça fonctionne !

    J'ai créé un nouveau fichier php dans un autre emplacement, avec des nom différents.
    J'ai copié-collé le code testé par Celira, j'ai aussi changé d'image, et çà fonctionne !

    Merci pour votre aide et votre patience !
    Si vous avez besoin d'une librairie permettant de gérer facilement les fichiers et les dossiers en PHP... ou si vous êtes juste curieux(se) :
    https://github.com/moDevsome/moFilesManager

    N'hésitez pas à me faire un retour

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probleme de java heap space : creation buffered image!
    Par Battosaiii dans le forum Multimédia
    Réponses: 7
    Dernier message: 06/08/2007, 10h49
  2. [Forum] Script upload + redimensionnement image jpg
    Par baleiney dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 6
    Dernier message: 03/07/2006, 11h27
  3. Script sur des images
    Par philippe du web dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 07/06/2006, 22h50
  4. [image]Création d'image dynamique
    Par Booyakha dans le forum Struts 1
    Réponses: 24
    Dernier message: 07/06/2006, 18h01
  5. Script creation BD -> MCD
    Par SunMicrosystem dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 24/01/2005, 10h12

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