Probleme de miniature - erreur imagesx et binaire

azerty
Invité n'ayant pas de compte PHPfrance

22 avr. 2006, 09:40

Bonjour,

Cela fait 3 jours que je planche sur un problème qui n'est pas normal. J'ai utilisé tout les scripts possible et imaginable rien à faire.
J'ai une image sauvegarder dans une bdd (j'utilise donc un blob). J'arrive à recupérer l'image et a l'afficher sans probleme. Mais la ou ca bloque, c'est pour la miniaturisation de l'image (a la volée ou avec un stockage dans la base pour récupérer apres). Bien que j'ai installé gd, voici l'erreur que j'obtiens:
Warning: imagesx(): supplied argument is not a valid Image resource in c:\program files\easyphp1-8\www\... on line 25

Warning: imagesy(): supplied argument is not a valid Image resource in c:\program files\easyphp1-8... on line 25

Warning: imagecopyresampled(): supplied argument is not a valid Image resource in c:\program files\easyphp1-8\www... on line 25
ÿØÿàJFIFÿþ>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality
J'ai aussi le retour de l'image en binaire en bleu (j'ai testé aussi avec header("Content-Type:image/$type")).

Quelqu'un pourrai t'il m'aidé s'il vous plais ca deviens assez urgent :? .

Si quelqu'un sais comment faire pour miniaturiser un image récupéré dans une bdd (de preference sans gd, mais avec c'est aussi bien :wink: ), un script serait bienvenue.

Merci d'avance.

Eléphant du PHP | 451 Messages

22 avr. 2006, 10:33

Salut,
Je ne suis pa spécialiste GD mais à chaque fois que je l'ai utilisé, ça à marché sans problème...
D'après ton erreur, il semble que tu ne passes pas l'image comme l'attends l'instruction.

A ta place, je ferais d'abord un test
un essai d'affichage de l'image sur le disque (hors base de donnée) sans la réduire.
ensuite, un affichage de l'image issue de la base de donnée toujours sans réduction.
puis avec affichage d'une réduction de l'image stockée sur le serveur (sans tenir compte de la base de données).

A ce stade, je pense que tu devrais pouvoir comprendre ton problème.

Là où je n'ai pas assez déléments pour te répondre :
- ton image est elle stockée en binaire dans la base de donnée (ça je ne l'ai jamais fait).
- la base de données contient-elle seulement le lien vers l'image stockée sur le disque.

Mais une question me vient à l'esprit, tu veux pouvoir fairre varier la taille de l'image ?
Si ce n'est pas le cas, pourquoi changes-tu la taille au moment de l'affichage plutôt que de le faire au moment de l'upload sur le serveur avant de l'enregistrer sur le disque ?
Jpaul
J'essaye d'aider : parfois je fais des erreurs, on me les corrige et j'apprends un peu plus. Super ce forum :)

Invité
Invité n'ayant pas de compte PHPfrance

22 avr. 2006, 12:49

Ben en faite je travail dans une base de donné pas de sauvegarde sur le disque. Donc toute mes images sont stockées en binaire.
J'ai réussi a créer ma miniature lors de l'upload, mais je ne sais pas comment la récupérer. Je peu juste l'afficher. Est il possible de récupérer cette nouvelle image pour la stocké dans ma base. Voici le code de redimentionnement utilisé:
// Redimensionnement 
$a = imagecreatetruecolor($width, $height); 
$b = imagecreatefromjpeg($img_orig); 
$ph_img = imagecopyresampled($a, $b, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig); 

// Affichage 
imagejpeg($a, null, 100);

Invité
Invité n'ayant pas de compte PHPfrance

22 avr. 2006, 15:00

Je pense avoir trouvé comment faire.
Normalement, pour sauvegarder la miniature générée sur le serveur, on remplace le null contenu dans imagejpeg() par l'adresse de destination.
Quelqu'un sait comment s'y prendre pour lui dire d'envoyer la miniature dans ma base (je rapel que c'est du blob)??

j'ai bien essayé : avec la requete

Code : Tout sélectionner

INSERT INTO images VALUES ('" . $b . "');"
mais a la place de ma miniature j'ai du binaire et rien n'est stocké dans ma base.

HELLLPPPP!!!, je m'y prend un peu tard c'est vrai mais c'est super urgent.

Merci d'avance.

Invité
Invité n'ayant pas de compte PHPfrance

22 avr. 2006, 19:17

C'est bon, j'ai pu resoudre mon probleme par moi meme 8). A la la jsui trop fiere. Ca fait un pti moment que je sus decu.
Merci a toi jpaul pour avoir essayer :wink: .

J'ai reussi, c'est trop top :!: :!: :mrgreen:

Eléphant du PHP | 451 Messages

22 avr. 2006, 22:39

Je n'ai pas été beaucoup là aujourd'hui mais je vois que tu as résolu ton problème.
Bravo, tu peux être fière de ton travail :)
Félicitations ;)
Jpaul
J'essaye d'aider : parfois je fais des erreurs, on me les corrige et j'apprends un peu plus. Super ce forum :)