8796 sujets

Développement web côté serveur, CMS

bonjour j'ai quelque soucis avec une fonction miniature simple, elle ne fonction pas on dirais que la premiers partie fonction et puis s'arrête sur une certain point je début en programmation , c'est un loisir pour moi seriez vous m'aider svp?

 function miniature($chemin_original, $chemin_mini, $fichier_image, $largeur_mini)
  {	  
  $image_size=@getimagesize($chemin_original.'/'.$fichier_image );
  switch ( $image_size ) {
  case 1 :
  $image_origine = imagecreatefromjpeg ($chemin_original.'/'.$fichier_image);
  $mime_photo='image/jpeg';
  break;
  case 2 :
  $image_origine = imagecreatefrompng($chemin_original.'/'.$fichier_image);
  $mime_photo='image/png';
  break;
  }	  	  
  $largeur_origine = imagesx($image_origine);
  $hauteur_origine = imagesy($image_origine);
  $hauteur_mini = $hauteur_origine * $largeur_mini /   $largeur_origine;
  $image_finale = imagecreate($largeur_mini, $hauteur_mini);
  imagecopyresized($image_finale, $image_origine, 0, 0, 0, 0,   $largeur_mini, $hauteur_mini, imagesx($image_origine), imagesy($image_origine) );
  $textcolor = imagecolorallocate($image_finale, 255, 255, 255);
  imagestring($image_finale, 4, 5, $h-25, $titre, $textcolor);

  switch ( $mime_photo) {
  case 'image/jpeg' :
  Imagejpeg ($chemin_mini.'/'.$image_finale);
  break;
  case 'image/png' :
  Imagepng ($chemin_mini.'/'.$image_finale);
  break;
  }
  return true;
  }

Modifié par pacphil (20 Oct 2009 - 10:51)
Salut et bienvenue,

Pourrais-tu faire un effort sur l'orthographe et la lisibilité de tes messages car comme tu le sais, la vocation de ce forum est d'être accessible à tous... même aux personnes qui suivent ton sujet à l'aide d'une synthèse vocale.

Merci d'avance. Smiley cligne
salut

edit du précédent post

normal que çà ne fonctionne pas, il manque des choses...


function miniature($image,$titre,$cheminMini,$width,$height,$hauteurEcrit,$paddingGauche) {
	if(extension_loaded('gd')) {
		if (file_exists($image)) {
			$info = pathinfo($image);
			$extension = strtolower ($info['extension']);
			switch($extension){
				case 'jpg':
				case 'jpeg':
					$imgSrc = imagecreatefromjpeg($image);
					break;
				case 'png':
					$imgSrc = imagecreatefrompng($image);
					break;
				case 'gif':
					$imgSrc = imagecreatefromgif($image);
					break;
				default:
					unset($imgSrc);
					die('Extensions de fichiers invalides!!');
			}

			$largeurSrc = imagesx($imgSrc);
			$hauteurSrc = imagesy($imgSrc);

			// pour garder les proportions de l'image
			if($largeurSrc > $hauteurSrc){
				$largeur = $width;//taille fixe paysage
				$hauteur = $height;
			}
			elseif ($largeurSrc < $hauteurSrc){
				$largeur = $height;//taille fixe portrait
				$hauteur = $width;
			}
			elseif ($largeurSrc == $hauteurSrc) {//identique
				$largeur = $width;
				$hauteur = $width;
			} else die('<p>Taille d\'image non g&eacute;r&eacut;e pour l\'instant.</p>');

			$l = $largeur; $h = $hauteur;
			$lSrc = $largeurSrc; $hSrc = $hauteurSrc;

			$mini = ImageCreateTrueColor ($l, $h);
			// couleur noire pour le texte, triplet rvb
			$couleur = imagecolorallocate($mini,0,0,0);
			// plus sympà que le resize
			ImageCopyResampled($mini, $imgSrc, 0, 0, 0, 0, $l, $h, $lSrc, $hSrc);
			//  http://fr2.php.net/manual/fr/function.imagestring.php  pour détails
			ImageString($mini,2,$hauteur-$paddingGauche,$hauteur-$hauteurEcrit,$titre,$couleur);
			switch($extension){
				case 'jpg':
				case 'jpeg':
					if (false === imagejpeg ($mini, $cheminMini.$image)) {
						die('Erreur! Miniature non cr&eacute;&eacute;e.');
					} else echo '<p>Miniature '.$image.' cr&eacute;&eacute;e sans soucis.</p>';
					break;
				case 'gif':
					if (false === imagegif ($mini, $cheminMini.$image)) {
						die('Erreur! Miniature non cr&eacute;&eacute;e.');
					} else echo '<p>Miniature '.$image.' cr&eacute;&eacute;e sans soucis.</p>';
					break;
				case 'png':
					if (false === imagepng ($mini, $cheminMini.$image)) {
						die('Erreur! Miniature non cr&eacute;&eacute;e.');
					} else echo '<p>Miniature '.$image.' cr&eacute;&eacute;e sans soucis.</p>';
					break;
			}
		} else {
			die('fichier inexistant');
		}
	} else {
		die('extension gd non disponible');
	}
}
// exemple de paramètres possibles
miniature('photos/guitares/acoustiques/montana_gold.jpg','exemple de texte','./mini/',210,90,15,15);


à toi de l'adapter à tes besoins mais c'est la marche à suivre. le code est retouché pour plus de souplesse, avec ajout de paramètres.
Modifié par keran (22 Oct 2009 - 20:49)