Redimensionner images avant enregistrement dans BDD [Résolu]

Signaler
Messages postés
2
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
3 avril 2007
-
Messages postés
2
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
3 avril 2007
-
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 ??

3 réponses

Messages postés
1406
Date d'inscription
mercredi 17 août 2005
Statut
Membre
Dernière intervention
28 août 2007
7

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();

?>

Messages postés
591
Date d'inscription
mercredi 20 juillet 2005
Statut
Membre
Dernière intervention
16 juillet 2009
2
Saell og blesuð

Quelles erreurs ?

Vilhjálms
Sigurðsdóttir aka Frëyjá
Messages postés
2
Date d'inscription
lundi 5 mars 2007
Statut
Membre
Dernière intervention
3 avril 2007

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.