la librairie GD

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : la librairie GD

par jeanBb » 08 sept. 2006, 15:35

Voila, le code que j'ai finalement si ça interesse qq1.
$photo1=$rep.'/'.$photo;
// Le fichier
$filename = $photo1;
$percent = 0.2;

// Content type
header('Content-type: image/jpeg');

// Calcul des nouvelles dimensions
list($width, $height) = getimagesize($filename);
$new_width = $width * $percent;
$new_height = $height * $percent;

// Redimensionnement
$image_p = imagecreatetruecolor($new_width, $new_height);
$image = imagecreatefromjpeg($filename);
imagecopyresized($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
// Affichage
imagejpeg($image_p, null, 100);
imagedestroy($image_p);

  $sql=mysql_query("INSERT INTO photo VALUES('','".$photo1."','".$rep."','')");
//header("location:ajout3.php");
	echo 'souhaitez vous rajouter une autre photo pour cette soirée?';
	?>

	<form action=ajout2.php method=post>
<input type=hidden name=nomS value=<?php echo $nomS;?> />
	<input type=hidden name=dateS value=<?php echo $dateS;?> />
	<input type=hidden name=ville value=<?php echo $ville;?> />
	<input type=hidden name=organisateur value=<?php echo $organisateur;?> />
	<input type=submit />
	</form>
	</form>
	<?php
	echo ' pour une autre soiree <a href=ajout1.php>Autre soirée</a>';
Alors la en fait, limagette s'affiche mais plus rien en dessous. Moi je voudrais qu'elle s'affiche, que je l'enregistre dans la base de donnees car la je n'enregistre que l'image normal uploadée(fo que je rajoute des champs dans la requette, donc faudrait que j'obtienne le nom de l'imagette). Et que les liens s'affichent aussi.

par jeanBb » 08 sept. 2006, 15:19

le probleme est resolu. j'ai cherché sur google.

par jeanBb » 08 sept. 2006, 14:27

Alors, c'est bon, ca marche bien.
en fait, y av une balise ?> qui trainait dans le code je l'ai enlevé et j'ai l'image, enfin presque car j'ai un rectangle au bonnes dimensions mais noir qui apparait.
merci en tout cas, je vais voir pourquoi le noir et pas l'image est affiché

par ouckileou » 08 sept. 2006, 14:02

Parceque avec cette méthode, cela renvoie un fichier image au navigateur. Donc si tu appelles directement ce fichier tu devrais la voir.

Par contre si tu veux l'insérer dans une page HTML, il faut le faire comme une image "statique".

Enfin jai peut-être pas bien suivi, ce fichier est appellé directement ou pas ?

par jeanBb » 08 sept. 2006, 13:24

en fait je comprends pas pourquoi tu veux que je fasse comme ca, enfin j'ai testé mais ca n'a rien fait.
Je pensais que la fonction de GD imagejpeg($image) afficher l'image.
alors j'ai fait quelque test en enlevant le header et j'ai ceci pour ca:

echo $n_image_largeur;
echo $image;
echo $source;
echo $photo;

150
Resource id #9
Resource id #11
_01.jpg
tout ca avant le imagejpeg.

EN remettant le header j'ai le message http....

Serait ce possible que ca vienne du header qui ne serai pas le bon?
Merci

par jeanBb » 08 sept. 2006, 13:14

je l'appel en le recuperant d'un formulaire d'une page precedente.
Je recupere bien tout car je s'insere des info sur l'image dans ma basse de données ( a savoir, nom, dimenseion, repd'enregistrement).
je vais essayer d'afficher avec ta methode et je te dirais.

merci.

par ouckileou » 08 sept. 2006, 13:10

Ok

Comment insères-tu ton fichier dans la page d'appel ?

Si tu veux afficher une image, essaie comme ça :

Code : Tout sélectionner

<img src="http://localhost/site/ajout3.php " />

par jeanBb » 08 sept. 2006, 12:50

Ah non, cela affiche sur la page le message
http://localhost/site/ajout3.php

Pourquoi cela n'affiche pas de photo?

Re: la librairie GD

par ouckileou » 08 sept. 2006, 12:45

egardé ce que faisait le code afin de bien comprendre.
Cependant, le code génère sur la page ceci :
http://localhost/site/ajout3.php
À part toi, personne ne peut accéder à ce site :)

la librairie GD

par jeanBb » 08 sept. 2006, 12:38

bonjour,

je suis en train de faire un script qui redimmensionne les dimensions d'une image.
Pour le moment, j'ai pris un tuto et j'ai regardé ce que faisait le code afin de bien comprendre.
Cependant, le code génère sur la page ceci :
http://localhost/site/ajout3.php

ajout3.php est le nom de ma page contenant le code.

voila le code:
$photo1=$rep.'/'.$photo;
$file_size = filesize($photo1); //récupération de la taille en octets
$file_size = round($file_size/1024); //conversion en ko

list($largeur, $hauteur) = getimagesize($photo1);

$ratio = 150/ $largeur; //ratio pour réduire à une taille voulue
$vignette_largeur = $largeur * $ratio + 2;  //on ajoute 2px à cause du contour

/* on ajoute 3px à cause du contour+légende        */
/* imagefontheight retourne la hauteur en pixels   */
/* d'une police sélectionée : cela permet de       */
/* calculer la hauteur de la légende               */

$vignette_hauteur = $hauteur * $ratio + 3 + imagefontheight(3);

$n_image_largeur = $largeur * $ratio; //largeur de l'image réduite

/***************************************************/
/* création de la vignette : on attribue aucune    */
/* couleur pour laisser un cadre noir              */
/***************************************************/

$image = imagecreatetruecolor($vignette_largeur,$vignette_hauteur);

$source = imagecreatefromjpeg($photo1);

/***************************************************/
/* réduction, rééchantillonage et copie de l'image */
/* originale                                       */
/* on recopie l'image à partir du point de         */
/* coordonnées 1,1 pour laisser un cadre noir      */
/***************************************************/

imagecopyresampled($image,$source, 1,1, 0,0, $n_image_largeur , $n_image_hauteur , $largeur, $hauteur);

/***************************************************/
/* envoi de l'image et destruction                 */
/***************************************************/
header('Content-type: image/jpeg');
imagejpeg($image);

Pouvez vous m'aider et me dire comment afficher la nouvelle image avec les bonnes dimensions.
Merci