Modifier une image(redimensionner) stoker dans la base de donnée(mysql)

Soyez le premier à donner votre avis sur cette source.

Snippet vu 14 375 fois - Téléchargée 24 fois

Contenu du snippet

importer une image d'une base de donnée mysql puis la redimensionner avec gd librery
la base de donné est simple est contient une seule image (juste comme exemple)

Source / Exemple :


<?php
mysql_connect("localhost", "user", "password");
mysql_select_db("nom_database");
$req = "SELECT img_blob ".
"FROM arbres WHERE id=360";
$result = mysql_query($req);
$data = mysql_result($result, 0, "img_blob");
$img = imagecreatefromstring($data);
// taille de la zone ou on va affiché l'image
    $maxWidth=  65;
    $maxHeight = 72;

	$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);
    //header("content-type:image/jpeg";
	ImageJpeg($imgThumb);

?>

A voir également

Ajouter un commentaire

Commentaires

splinterboyfr
Messages postés
1
Date d'inscription
dimanche 14 février 2010
Statut
Membre
Dernière intervention
14 février 2010
-
Bonjour tout le monde !
Désolé de déterrer un sujet de 4 ans d'âge mais j'ai juste une petite question.
Avec un formulaire j'envoie un fichier jpg à une seconde page dans laquelle j'ai placé ce code :

$file = fopen ($_FILES["img"]["tmp_name"], "rb" );
$size = filesize ($_FILES["img"]["tmp_name"]);
$content = fread ($file, $size);

$img159 = imagecreatefromstring($content);

$maxWidth= 200;
$maxHeight = 135;
$img159Width = imagesx($img159);
$img159Height = imagesy($img159);

$whFact = $maxWidth/$maxHeight;
$img159WhFact = $img159Width/$img159Height;
if($whFact < $img159WhFact){
$thumbWidth = $maxWidth;
$thumbHeight = $thumbWidth/$img159WhFact;
} else {
$thumbHeight = $maxHeight;
$thumbWidth = $thumbHeight*$img159WhFact;
}
$img159Thumb = ImageCreateTruecolor($thumbWidth, $thumbHeight);
ImageCopyResized($img159Thumb, $img159, 0, 0, 0, 0, $thumbWidth, $thumbHeight, $img159Width, $img159Height);
$img159ThumbName = "thumb_".$file;
$fp = fopen($img159ThumbName, "w");
fclose($fp);

// Ce que je ne sais pas c'est comment repasser en code binaire correctement pour insérer la petite image dans ma table (en blob). Faut-il quelque chose comme cela ? :

$file15 = fopen ($img159ThumbName, "rb" );
$size15 = filesize ($img159ThumbName);
$content15 = fread ($file15, $size15);
$final = addslashes ($content15);

// voici ensuite la requête sql que j'utilise :

mysql_query("INSERT INTO articles(temps_modification, temps_creation, contenu, titre, author, categorie, photo) VALUES('$timestamp', '$timestamp', '$nouveaucontenusansapo', '$nouveautitresansapo', '$nouveauauteursansapo', '$nouveaucategorie', '{$final}')");

Si quelqu'un a une idée ce serait vraiment gentil à lui de me répondre :)
Merci d'avance!
ghuysmans99
Messages postés
2520
Date d'inscription
jeudi 14 juillet 2005
Statut
Contributeur
Dernière intervention
5 juin 2016
1 -
c'est pas 'gd librery' mais 'gd library'
cs_farzit
Messages postés
2
Date d'inscription
dimanche 9 juin 2002
Statut
Membre
Dernière intervention
16 septembre 2006
-
pour la db il suffit de creer un champ blob pas besoin de fichier (.sql)
il s'agit d'un extraction simple d'image deja stocker au niveau de la db la notion de controle sur fichier n'existe pas .

je mettrez a disposition un exemple compler la porochaine en attendant fait l'effort d'exploiter cette source qui est vraiment d'un grande itulité .
cs_glad
Messages postés
97
Date d'inscription
lundi 26 novembre 2001
Statut
Membre
Dernière intervention
24 février 2012
-
Re,

Je n'avais pas regardé ton source...

Fais des contrôles !
Il n'y en a aucun sur les échanges de la base de données par exemple...
Vérifie que le fichier n'existe pas déjà, qu'il n'y ait pas de pb à sa création, ...

Il peut arriver 1000 trucs qd tu manipules des bases de données et des fichiers...

Aller, hop hop, j'espère que tu es en vacances pour revoir ça ;-)

Je te mets 7.
à +
cs_glad
Messages postés
97
Date d'inscription
lundi 26 novembre 2001
Statut
Membre
Dernière intervention
24 février 2012
-
Salut

Hum ! Il n'y a pas de Zip ?
Il faudrait au moins mettre le fichier sql de ta base dans ce cas là :-)

à +

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.