Redimensionner images avant enregistrement dans BDD [Résolu]

Messages postés
2
Date d'inscription
lundi 5 mars 2007
Dernière intervention
3 avril 2007
- 3 avril 2007 à 15:21 - Dernière réponse :
Messages postés
2
Date d'inscription
lundi 5 mars 2007
Dernière intervention
3 avril 2007
- 3 avril 2007 à 17:22
Bonjour à tous, j'ai cherché par ci par là une
solution à mon problème mais je n'ai rien trouvé alors voilà ce que je
cherche à faire:


J'ai un formulaire permettant d'envoyer une image sur le serveur.


Je stock cette image dans une BDD MySQL (champ BLOB).


Ca j'arrive à le faire, j'affiche ensuite correctement cette image suite à un "SELECT".


Seulement j'aimerais redimensionner l'image avant de l'enregistrer dans la base au lieu de limiter la taille avant l'envoi.

Alors je passe un petit coup de GD (imagecopyresized) sur mon image
envoyé et j'enregistre alors mon résultat dans ma base comme je le
fesais avec l'image d'origine. Là aussi, ca marche, seulement pour
l'affichage, le navigateur dit que l'image contient des erreurs.


J'ai essayé pas mal de solution, mais là je suis un peu perdu, est-ce que quelqu'un pourrait me remettre sur les rails ??
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
Messages postés
1406
Date d'inscription
mercredi 17 août 2005
Dernière intervention
28 août 2007
- 3 avril 2007 à 16:23
3
Merci

Bonjour,

Ce petit bout de script viens d'ici, à part :
* le code sousligné pour récupérer directement le fichier uploadé depuis son emplacement temporaire
* les deux lignes en gras qui permettent de récupérer l'image dans une chaine de caractères...

Il devrait fonctionner! ne reste plus qu'à envoyer dans la BDD

<?php

// The file

$filename 
=  




$_FILE['image_uploadée'][tmp_name







']


;





// Set a maximum height and width

$width 
= 
200
;

$height 
= 
200
;


// Content type

// header
(
'Content-type: image/jpeg'
); <= on s'en fout!


// Get new dimensions

list(
$width_orig
, 
$height_orig
) = 
getimagesize
(
$filename
);


$ratio_orig 
= 
$width_orig
/
$height_orig
;


if (
$width
/
$height 
> 
$ratio_orig
) {

   
$width 
= 
$height
*
$ratio_orig
;

} else {

   
$height 
= 
$width
/
$ratio_orig
;

}


// Resample

$image_p 
= 
imagecreatetruecolor
(
$width
, 
$height
);

$image 
= 
imagecreatefromjpeg
(
$filename
);

imagecopyresampled
(
$image_p
, 
$image
, 
0
, 
0
, 
0
, 
0
, 
$width
, 
$height
, 
$width_orig
, 
$height_orig
);


// Output
 ob_start(); 

imagejpeg
(
$image_p
, 
null
, 
100
);
$image_blob  = ob_get_clean();

?>

Merci J_G 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 87 internautes ce mois-ci

Commenter la réponse de J_G
Messages postés
591
Date d'inscription
mercredi 20 juillet 2005
Dernière intervention
16 juillet 2009
- 3 avril 2007 à 16:14
0
Merci
Saell og blesuð

Quelles erreurs ?

Vilhjálms
Sigurðsdóttir aka Frëyjá
Commenter la réponse de vilhjalms
Messages postés
2
Date d'inscription
lundi 5 mars 2007
Dernière intervention
3 avril 2007
- 3 avril 2007 à 17:22
0
Merci
Formidable, c'est exactement ce que je cherchait, voilà une commande que je ne connaissais absolument pas, je vais continuer à me renseigner là dessus. :)
Merci beaucoup, pour la rapidité et la pertinence de cette réponse.
Commenter la réponse de lowkzilla

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.