Formation par Olivier Duffez

Formation au référencement par Olivier Duffez, créateur de WebRankInfo !
Une formule efficace alliant théorie et pratique, avec une haute disponibilité des intervenants
Cette formule a déjà convaincu plusieurs centaines d'entreprises, pourquoi pas vous ?
Réservez vite votre place en ligne (convention possible pour imputer sur le budget formation)

Formation référencement Marseille

[script] Création de vignette jpeg ou png

Aller à la page 1, 2, 3  Suivante
Poster un nouveau sujet Imprimer cette discussion    Forum -> Développement d'un site Web   Les dernières discussions de ce forum sont disponibles au format RSS
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 
medium69
WRInaute accro
WRInaute accro

Inscrit le: 07 Mai 2005
Messages: 2151
Localisation: Je sais pas trop ;)

URL permanente de ce messagePosté le : Mar Nov 28, 2006 0:43    Sujet du message: [script] Création de vignette jpeg ou png

Je vous laisse un petit script que je me suis adapté pour mes besoins personnel.

Il permet de créer une vignette à partir d'une image originale.
La vignette est enregistré sur le serveur et ne peut être supérieure à la taille de l'original.

Le script prend en compte les images png et jpeg (le gif n'étant plus dans le domaine libre).

Vous me direz ainsi si je peux l'optimiser un peu

Code:
/**********************************************************************
- vignette($file, $maxWidth = 450, $maxHeight = 350)
- Création d'une vignette à partir d'une image ($file)
- Les extension prise en compte sont jpg et png (le gif est remplacé par le png ; le gif animé n'est jamais redimensionné)
- Dernière version : 27/11/2006

* $file : chemin vers le fichier image à redimensionner
* $maxWidth : largeur maximum que dois faire la miniature (450 par défaut)
* $maxHeight : Hauteur maximum que dois faire l'image (350 par défaut)
**********************************************************************/
function vignette($file, $maxWidth = 450, $maxHeight = 350){
   
   // Vérification des erreurs dans les paramètres de la fonction
   //============================================================
   if(!file_exists($file)){
      // Si le fichier passé en paramètre n'existe pas
      return 'Le fichier '.$file.' n\'a pas été trouvé sur le serveur.';
   }
   elseif(empty($file)){
      // Si le fichier n'a pas été indiqué
      return 'Nom du fichier non renseigné.';
   }
   elseif(!is_numeric($maxWidth) || empty($maxWidth) || $maxWidth < 0){
      // Si la largeur max est incorrecte (n'est pas numérique, est vide, ou est inférieure à 0)
      return 'Valeur de la largeur incorrecte.';
   }
   elseif(!is_numeric($maxHeight) || empty($maxHeight) || $maxHeight < 0){
      // Si la hauteur max est incorrecte (n'est pas numérique, est vide, ou est inférieure à 0)
      return 'Valeur de la hauteur incorrecte.';
   }
   //============================================================
   
   $fichier = realpath($file); // Chemin canonique absolu de l'image
   $dir = dirname($file).'/'; // Chemin du dossier contenant l'image
   $infoImg = getimagesize($fichier); // Récupération des infos de l'image
   $imgWidth = $infoImg[0]; // Largeur de l'image
   $imgHeight = $infoImg[1]; // Hauteur de l'image
   
   // Initialisation des variables selon l'extension de l'image
   switch($infoImg[2]){
      case 2:
         $img = imagecreatefromjpeg($fichier); // Création d'une nouvelle image jpeg à partir du fichier
         $extImg = '.jpg'; // Extension de l'image
      break;
      case 3:
         $img = imagecreatefrompng($fichier); // Création d'une nouvelle image png à partir du fichier
         $extImg = '.png';
   }
   
   // Initialisation des dimensions de la vignette si elles sont supérieures à l'original
   if($maxWidth > $imgWidth){ $maxWidth = $imgWidth; }
   if($maxHeight > $imgHeight){ $maxHeight = $imgHeight; }
   
   $whFact = $maxWidth/$maxHeight; // Facteur largeur/hauteur des dimensions max de la vignette
   $imgWhFact = $imgWidth/$imgHeight; // Facteur largeur/hauteur de l'original
   
   // Fixe les dimensions de la vignette
   if($whFact < $imgWhFact){
      // Si largeur déterminante
      $thumbWidth  = $maxWidth;
      $thumbHeight = $thumbWidth / $imgWhFact;
   } else {
      // Si hauteur déterminante
      $thumbHeight = $maxHeight;
      $thumbWidth  = $thumbHeight * $imgWhFact;
   }
   
   $imgThumb = imagecreatetruecolor($thumbWidth, $thumbHeight); // Création de la vignette
   
   imagecopyresized($imgThumb, $img, 0, 0, 0, 0, $thumbWidth, $thumbHeight, $imgWidth, $imgHeight); // Insère l'image de base redimensionnée
   
   $fileName = basename($file, $extImg); // Nom du fichier sans son extension
   $imgThumbName = $dir.$fileName.'-min'.$extImg; // Chemin complet du fichier de la vignette
   
   //Création du fichier de la vignette
   $fp = fopen($imgThumbName, "w");
   fclose($fp);
   
   // Renvoi la vignette créée
   switch($infoImg[2]){
      case 2:
         imagejpeg($imgThumb, $imgThumbName, 50); // Renvoi d'une image jpeg avec une qualité de 50
         break;
      case 3:
         imagepng($imgThumb, $imgThumbName);
   }
   
   return $imgThumbName;

}
Wink
 
medium69 Visiter le site web du posteur
e-kiwi
Modérateur
Modérateur

Inscrit le: 23 Déc 2003
Messages: 12627
Localisation: Toulouse

URL permanente de ce messagePosté le : Mar Nov 28, 2006 8:17    Sujet du message: [script] Création de vignette jpeg ou png

Bonjour,

si vous etes intérréssé, j'ai le script qui genere une image copyrighté (il suffit de donner le chemin du logo et sa position dans l'image finale)
 
e-kiwi Visiter le site web du posteur
apiphoto
WRInaute impliqué
WRInaute impliqué

Inscrit le: 29 Avr 2006
Messages: 385
Localisation: St Morillon, Gironde, France

URL permanente de ce messagePosté le : Mar Nov 28, 2006 9:08    Sujet du message: [script] Création de vignette jpeg ou png

e-kiwi a écrit:
Bonjour,

si vous etes intérréssé, j'ai le script qui genere une image copyrighté (il suffit de donner le chemin du logo et sa position dans l'image finale)


Bonjour,
Oui c'est un script qui m'intéresse.
Pour l'instant je travail en amont avec Photoshop mais j'ai un site en préparation pour lequel cela me serait très utile.
Merci

Et je testerai le script précédent aussi.
Merci
 
apiphoto Visiter le site web du posteur
La Chaise sauvage
WRInaute passionné
WRInaute passionné

Inscrit le: 11 Avr 2005
Messages: 664
Localisation: Saint Martin du Var

URL permanente de ce messagePosté le : Mar Nov 28, 2006 9:18    Sujet du message: Re: [script] Création de vignette jpeg ou png

medium69 a écrit:

Le script prend en compte les images png et jpeg (le gif n'étant plus dans le domaine libre).



http://gnu.fyxm.net/philosophy/gif.fr.html#venuenote

Citation:

Le brevet Unisys a expiré le 20 juin 2003 aux États-Unis; en Europe, le 18 juin 2004; au Japon, le 20 juin 2004 et au Canada, le 7 juillet 2004. Le brevet américain de IBM a expiré le 11 août 2006. Le Software Freedom Law Center dit qu'après le 1er octobre 2006, il n'y aura plus de revendication de brevet significative pour interférer avec l'emploi du format GIF.


.. et imagecreatefromgif marche très bien Rolling Eyes
 
La Chaise sauvage Visiter le site web du posteur
rog
WRInaute accro
WRInaute accro

Inscrit le: 21 Sep 2006
Messages: 1662
Localisation: sapucaia do sul (RS)

URL permanente de ce messagePosté le : Mar Nov 28, 2006 10:43    Sujet du message: [script] Création de vignette jpeg ou png

yep

moi j'en ai fait un qui met à jour un dossier mirroir

tu lances le script et il update le dossier à l'identique et en passant efface les vignettes dont les images ont disparues

je le publierai quand j'aurai fini mon site et surtout quand ovh voudra bien me livrer le dedié que j'ai commandé et payé depuis plus de deux mois

rog
 
rog Visiter le site web du posteur
Tilt
WRInaute passionné
WRInaute passionné

Inscrit le: 26 Mar 2005
Messages: 758

URL permanente de ce messagePosté le : Mar Nov 28, 2006 12:31    Sujet du message: Re: [script] Création de vignette jpeg ou png

medium69 a écrit:

Vous me direz ainsi si je peux l'optimiser un peu

Oui, c'est le script de la doc php, à ceci près que la doc conseille de remplacer imagecopyresized par imagecreatetruecolor (http://www.php.net/imagecopyresized).
 
Tilt Visiter le site web du posteur
ecocentric
WRInaute accro
WRInaute accro

Inscrit le: 10 Fév 2004
Messages: 3418
Localisation: Mons

URL permanente de ce messagePosté le : Mar Nov 28, 2006 12:34    Sujet du message: [script] Création de vignette jpeg ou png

Le brevet du GIF est tombé dans le domaine public depuis quelques temps déjà.
 
ecocentric Visiter le site web du posteur
La Chaise sauvage
WRInaute passionné
WRInaute passionné

Inscrit le: 11 Avr 2005
Messages: 664
Localisation: Saint Martin du Var

URL permanente de ce messagePosté le : Mar Nov 28, 2006 13:07    Sujet du message: Re: [script] Création de vignette jpeg ou png

Tilt a écrit:
medium69 a écrit:

Vous me direz ainsi si je peux l'optimiser un peu

Oui, c'est le script de la doc php, à ceci près que la doc conseille de remplacer imagecopyresized par imagecreatetruecolor (http://www.php.net/imagecopyresized).


hum nan. imagecopyresized est remplacé par imagecopyresampled

Wink
 
La Chaise sauvage Visiter le site web du posteur
medium69
WRInaute accro
WRInaute accro

Inscrit le: 07 Mai 2005
Messages: 2151
Localisation: Je sais pas trop ;)

URL permanente de ce messagePosté le : Mar Nov 28, 2006 13:13    Sujet du message: Re: [script] Création de vignette jpeg ou png

La Chaise sauvage a écrit:
medium69 a écrit:

Le script prend en compte les images png et jpeg (le gif n'étant plus dans le domaine libre).



http://gnu.fyxm.net/philosophy/gif.fr.html#venuenote

Citation:

Le brevet Unisys a expiré le 20 juin 2003 aux États-Unis; en Europe, le 18 juin 2004; au Japon, le 20 juin 2004 et au Canada, le 7 juillet 2004. Le brevet américain de IBM a expiré le 11 août 2006. Le Software Freedom Law Center dit qu'après le 1er octobre 2006, il n'y aura plus de revendication de brevet significative pour interférer avec l'emploi du format GIF.


.. et imagecreatefromgif marche très bien Rolling Eyes


Je n'ai jamais prétendu que imagecreatefromgif ne marchait pas.

Arrow Je n'étais pas au courant du problème de revendication du brevet

Arrow Cela dit, ont peut sans problème redimensionner un gif simple (il suffit d'ajouter cette partie dans le code) ainsi que tout les autres formats d'images (je me suis limité au plus courant sur le web)

Arrow On ne peut cependant pas miniaturisé un gif animé avec cette méthode ; c'est ce qui à également motivé mon choix pour le remplacement du gif simple par png.


Je suis ouvert à une solution pour redimensionné à la demande un gif animé si quelqu'un à une solution
 
medium69 Visiter le site web du posteur
medium69
WRInaute accro
WRInaute accro

Inscrit le: 07 Mai 2005
Messages: 2151
Localisation: Je sais pas trop ;)

URL permanente de ce messagePosté le : Mar Nov 28, 2006 13:13    Sujet du message: [script] Création de vignette jpeg ou png

e-kiwi a écrit:
Bonjour,

si vous etes intérréssé, j'ai le script qui genere une image copyrighté (il suffit de donner le chemin du logo et sa position dans l'image finale)


C'est une partie que je n'ai pas encore étudiée, mais qui m'intéresse.

Si tu peux nous donner le script Wink
 
medium69 Visiter le site web du posteur
medium69
WRInaute accro
WRInaute accro

Inscrit le: 07 Mai 2005
Messages: 2151
Localisation: Je sais pas trop ;)

URL permanente de ce messagePosté le : Mar Nov 28, 2006 13:16    Sujet du message: Re: [script] Création de vignette jpeg ou png

Tilt a écrit:
medium69 a écrit:

Vous me direz ainsi si je peux l'optimiser un peu

Oui, c'est le script de la doc php, à ceci près que la doc conseille de remplacer imagecopyresized par imagecreatetruecolor (http://www.php.net/imagecopyresized).


Il est loin d'être identique il me semble Wink
 
medium69 Visiter le site web du posteur
La Chaise sauvage
WRInaute passionné
WRInaute passionné

Inscrit le: 11 Avr 2005
Messages: 664
Localisation: Saint Martin du Var

URL permanente de ce messagePosté le : Mar Nov 28, 2006 13:17    Sujet du message: Re: [script] Création de vignette jpeg ou png

medium69 a écrit:

Arrow On ne peut cependant pas miniaturisé un gif animé avec cette méthode ; c'est ce qui à également motivé mon choix pour le remplacement du gif simple par png.


Je suis ouvert à une solution pour redimensionné à la demande un gif animé si quelqu'un à une solution


je suis en train de bosser sur la question justement... mais ce n'est pas vraiment montrable en l'état... à suivre
 
La Chaise sauvage Visiter le site web du posteur
medium69
WRInaute accro
WRInaute accro

Inscrit le: 07 Mai 2005
Messages: 2151
Localisation: Je sais pas trop ;)

URL permanente de ce messagePosté le : Mar Nov 28, 2006 13:18    Sujet du message: Re: [script] Création de vignette jpeg ou png

Je vois qu'il faudrait remplacer par imagecopyresized

Arrow imagecopyresampled ou imagecreatetruecolor

quels sont les changements qui y sont bénéfiques ?
 
medium69 Visiter le site web du posteur
medium69
WRInaute accro
WRInaute accro

Inscrit le: 07 Mai 2005
Messages: 2151
Localisation: Je sais pas trop ;)

URL permanente de ce messagePosté le : Mar Nov 28, 2006 13:19    Sujet du message: Re: [script] Création de vignette jpeg ou png

La Chaise sauvage a écrit:
medium69 a écrit:

Arrow On ne peut cependant pas miniaturisé un gif animé avec cette méthode ; c'est ce qui à également motivé mon choix pour le remplacement du gif simple par png.


Je suis ouvert à une solution pour redimensionné à la demande un gif animé si quelqu'un à une solution


je suis en train de bosser sur la question justement... mais ce n'est pas vraiment montrable en l'état... à suivre


Retiens mon pseusdo car si tu y arrives cela m'intéresse au plus au point Razz
 
medium69 Visiter le site web du posteur
La Chaise sauvage
WRInaute passionné
WRInaute passionné

Inscrit le: 11 Avr 2005
Messages: 664
Localisation: Saint Martin du Var

URL permanente de ce messagePosté le : Mar Nov 28, 2006 13:22    Sujet du message: [script] Création de vignette jpeg ou png

check tes messages privés
 
La Chaise sauvage Visiter le site web du posteur
 
Montrer les messages depuis:   
Revenir en haut    Forum -> Développement d'un site Web Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 3 - Aller à la page 1, 2, 3  Suivante
Connexion
Nom d'utilisateur:    Mot de passe:      Se connecter automatiquement à chaque visite    

En savoir plus : .

CLIQUEZ ICI pour vous inscrire à WebRankInfo (forum, annuaire, outils...)

Connexion

© 2001-2005 phpBB Group, support français
Personnalisation : WebRankInfo ™


 ODP  Firefox  Alsacreations  annuaire webmaster Yagoort