Redimensionner images avant enregistrement dans BDD [Résolu]

lowkzilla 2 Messages postés lundi 5 mars 2007Date d'inscription 3 avril 2007 Dernière intervention - 3 avril 2007 à 15:21 - Dernière réponse : lowkzilla 2 Messages postés lundi 5 mars 2007Date d'inscription 3 avril 2007 Dernière intervention
- 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 

3 réponses

Répondre au sujet
J_G 1406 Messages postés mercredi 17 août 2005Date d'inscription 28 août 2007 Dernière intervention - 3 avril 2007 à 16:23
+3
Utile

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

?>

Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de J_G
vilhjalms 591 Messages postés mercredi 20 juillet 2005Date d'inscription 16 juillet 2009 Dernière intervention - 3 avril 2007 à 16:14
0
Utile
Saell og blesuð

Quelles erreurs ?

Vilhjálms
Sigurðsdóttir aka Frëyjá
Commenter la réponse de vilhjalms
lowkzilla 2 Messages postés lundi 5 mars 2007Date d'inscription 3 avril 2007 Dernière intervention - 3 avril 2007 à 17:22
0
Utile
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.