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

Bibliothèques et frameworks PHP Discussion :

[GD] thumbnail : Problème d'image JPEG non valide


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de Commodore
    Homme Profil pro
    Business manager
    Inscrit en
    Février 2004
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Business manager

    Informations forums :
    Inscription : Février 2004
    Messages : 599
    Par défaut [GD] thumbnail : Problème d'image JPEG non valide
    Bonjour,

    j'ai un petit problème (en fait un gros) avec la fonction Thumbnail donnée dans la FAQ, pour créer des miniatures d'images.

    quand je travaille avec des petites images (pas trop grandes) tout marche parfaitement. Mais dès que j'essaie avec des wallpapers (800x600 et plus grands) plus rien ne va.

    quelqu'un saurait-il m'expliquer comment ça se fait ?

    mon code est le même que celui de la FAQ pour le fichier miniature.php
    http://php.developpez.com/faq/?page=gd#gd_qualiteimage

    le code pour uploader les fichier dans la base est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php
     
    	include('../connexion.php');
    	include('miniature.php');
     
    	/*ajouter le path du fichier image dans la base*/
    	$req = "insert into images(img_path, album, img_nom, thumbnail, etat, proprio) values('./wallpapers/".$_POST['nom_image_field']."','".$_POST['album_image_field']."','".$_POST['chemin_image_field']."','./wallpapers/thumb_".$_POST['nom_image_field']."','".$_POST['etat_field']."','".$_POST['proprio_field']."')";
    	$res = mysql_query($req) or die('echec d\'insertion de l\'image dans la base'.mysql_error());
     
    	/*creation de la miniature et la mettre dans le dossier images*/
    	$thumb = thumbnail($_POST['nom_image_field'],100,100);
    	rename($thumb, './'.$thumb);
     
    	echo '<a href="../index.php?numlien=1">Retour</a>'
     
    ?>

  2. #2
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 472
    Par défaut
    Citation Envoyé par Commodore_Psykopate
    Mais dès que j'essaie avec des wallpapers (800x600 et plus grands) plus rien ne va.
    Tu as une erreur qui est affichée ?
    Que se passe-t-il exactement ?

    Mathieu

  3. #3
    Membre éprouvé Avatar de Commodore
    Homme Profil pro
    Business manager
    Inscrit en
    Février 2004
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Business manager

    Informations forums :
    Inscription : Février 2004
    Messages : 599
    Par défaut
    il me dit que le fichier jpg n'est pas valide. j'ai testé avec d'autres jpg. il en est de même.

  4. #4
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 472
    Par défaut
    Bonsoir,

    Je viens d'essayer ce code avec un JPEG de 1024x768 avec les même paramètres que toi : 100x100. J'ai aucun problème...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    <?php
    function thumbail($file, $maxWidth, $maxHeight){//Créer une image à partir de $file
        $img = ImageCreateFromJpeg("$file");
        //Dimensions de l'image
        $imgWidth = imagesx($img);
        $imgHeight = imagesy($img);
        //Facteur largeur/hauteur des dimensions max
        $whFact = $maxWidth/$maxHeight;
        //Facteur largeur/hauteur de l'original
        $imgWhFact = $imgWidth/$imgHeight;
        //fixe les dimensions du thumb
        if($whFact < $imgWhFact){//Si largeur déterminante
            $thumbWidth  = $maxWidth;
            $thumbHeight = $thumbWidth/$imgWhFact;
        } else { //Si hauteur déterminante
            $thumbHeight = $maxHeight;
            $thumbWidth = $thumbHeight*$imgWhFact;
        }
     
        //Crée le thumb (image réduite)
        $imgThumb = ImageCreateTruecolor($thumbWidth, $thumbHeight);
        //Insère l'image de base redimensionnée
        ImageCopyResized($imgThumb, $img, 0, 0, 0, 0, $thumbWidth, $thumbHeight, $imgWidth, $imgHeight);
        //Nom du fichier thumb
        $imgThumbName = "thumb_".$file;
        //Crée le fichier thumb
        $fp = fopen($imgThumbName, "w");
        fclose($fp);
        //Renvoie le thumb créé
        ImageJpeg($imgThumb, $imgThumbName);
        return $imgThumbName;
    }
     
    thumbail('scary-movie-4-wallpaper-4-1024.jpg',100,100);
    ?>
    <html>
    	<head>
    		<title>Test...</title>
    	</head>
    	<body>
    		<img src='thumb_scary-movie-4-wallpaper-4-1024.jpg'/>
    	</body>
    </html>
    Est-ce que les fichiers JPEG en 800x600 sont stockés sur le serveur ou ils viennent d'un formulaire ?

    Mathieu

  5. #5
    Membre éprouvé Avatar de Commodore
    Homme Profil pro
    Business manager
    Inscrit en
    Février 2004
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Business manager

    Informations forums :
    Inscription : Février 2004
    Messages : 599
    Par défaut
    en fait, je les uploade vers le serveur avec un formulaire et ils sont miniaturisés à partir du serveur.

    l'erreur se trouve au niveau de la fonction ImageCreateFromJpeg()


  6. #6
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 472
    Par défaut
    Bonjour,

    Peux-tu nous donner l'erreur exacte qui est affichée ?

    As-tu essayé avec un petit bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $image = @imagecreatefromjpeg($imagepath);
    if( !$image )
    {
         echo 'Erreur !';
    }
    else
    {
         // C'est OK!
    }
    Cordialement,
    Mathieu

Discussions similaires

  1. problème avec 'anchor', déplacement non valide
    Par aL1ba dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 19/09/2010, 14h45
  2. Problème avec XmlDocument [Données non valide]
    Par mobscene dans le forum C#
    Réponses: 1
    Dernier message: 30/08/2007, 00h16
  3. Réponses: 5
    Dernier message: 13/08/2007, 14h02
  4. Réponses: 2
    Dernier message: 14/06/2007, 00h35

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