Redimenssionner Image.

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 : Redimenssionner Image.

par Sékiltoyai » 31 août 2007, 14:00

Pour écrire l'image sur le disque, il ne faut pas mettre le header et il faut spécifier un nom de fichier dans la fonction imagejpeg(). Ensuite, pour savoir si cela fonctionne, tu peux le tester toi même…

par auberstar » 31 août 2007, 13:57

<?
Header("Content-type: image/jpeg");
$image = "logo.jpg";
$src_im = ImageCreateFromJpeg($image);
$size = GetImageSize($image);
$src_w = $size[0];
$src_h = $size[1];
$dst_w = 450; 
$dst_h = round(($dst_w / $src_w) * $src_h);
$dst_im = ImageCreateTrueColor($dst_w,$dst_h);
ImageCopyResampled($dst_im,$src_im,0,0,0,0,$dst_w,$dst_h,$src_w,$src_h);
ImageJpeg($dst_im);
ImageDestroy($dst_im);
imageDestroy($src_im);
?>
est-ce bon ?
Merci.

par Sékiltoyai » 31 août 2007, 12:30

  • Tu dois lire ton image avec imagecreatefrom*() (* : jpeg, gif, png, … ).
  • Tu dois lire les dimensions de l'image avec getimagesize() et calculer les nouvelles dimensions.
  • Tu dois créer une nouvelle image aux nouvelles dimensions avec imagecreate().
  • Tu dois copier l'ancienne image vers la nouvelle avec imagecopy() en précisant les nouvelles dimensions.
  • Tu dois réécrire l'image résultat vers le fichier avec image* (* : jpeg, gif, png, … ).
  • Tu dois libérer les ressources avec imagedestroy().

Redimenssionner Image.

par auberstar » 31 août 2007, 11:54

Bonjour,

J'ai un script qui permet au utilisateur d'ajouter des images sur leurs comptes, cependant quand les images dépassent 450 de largeur, elles déforment mon site, je voudrais donc qu'elles soient redimenssionner mais "proprement", proportionellement... . Je m'y connais pas trop en php donc si quelqu'un pourrait m'aider. Merci.
Voici mon code :
case 6:$file="myphotos.php";
				//include("checksession.php");
				if(isset($addpic))
				{
						$approved=getSetting("APPROVEPIC");
						if(!empty($url))
						{
								$sql="insert into photos(url,filename,username,upldate,approved) values('$url','$filename','$ses_username',now(),'$approved')";
								$res=mysql_query($sql);
						}
						else if(!empty($uppic_name))
						{
							$allowable=getSetting("ALLOWEDFORMATS");
							$allowablearr=split(",",$allowable);
							$allowedType=0;
							$ext=strchr($uppic_name,".");
							
							if(in_array($ext,$allowablearr))$allowedType=1;
							if($allowedType==1)
							{
							$fileid=generateShortCode();
							$filename=$ses_username.$fileid.$ext;
							
							$copytofile="pics/$filename";
							copy($uppic,$copytofile);
							@unlink($uppic);
							
								$sql="insert into photos(url,filename,username,upldate,approved) values('$url','$filename','$ses_username',now(),'$approved')";
								$res=mysql_query($sql);
							}
							else
							{
								@unlink($uppic);
								$uperror="Format non supporté!";
							}
						}
						if($approved=="Y")
						{
							$error="L'image a été ajoutée.";	
						}
						else if($error=="")
						{
							$error="L'image est en attente de validation.";
						}
				}
				break;
Merci d'avance.