Accueil > > > VIGNETTE EN RECADRANT AVEC TAILLE FIXE!
VIGNETTE EN RECADRANT AVEC TAILLE FIXE!
Information sur la source
Description
Marre de voir des scripts qui se contentent de redimensionner l'image pour créer des vignettes? Frustré d'avoir des vignettes de tailles différente parce que vous ne voulez pas les compresser? La solution est pourtant simple, recadrer la vignette et laisser tomber les rognures latérales pour que le thumbnail soit toujours de taille fixe! Or jusqu'à présent personne n'a pris la peine de poster une source pareille ou du moins, pas une source aussi simple. En somme cette source reste très simple, j'en suis conscient; j'espère juste qu'elle vous sera utile...
Source
- <?php
- function get_extension($filename)
- {
- $ext = substr(strtolower(strrchr(basename($filename), ".")), 1);
- return $ext;
- }
- function imageanytype ($image,$nomImage, $quality=100)
- {
- if (!IMG_JPEG) exit("erreur: librairie GD non activée!");
-
- switch (get_extension($nomImage))
- {
- case "gif":
- return imagegif($image,$nomImage);
- $fctImage = imagegif;
- break;
- case "jpg":
- return imagejpeg($image,$nomImage,$quality);
- break;
- case "png":
- return imagepng($image,$nomImage);
- break;
- case "wbmp":
- case "bmp":
- return imagewbmp($image,$nomImage);
- break;
- case "xbm":
- return imagexbm($image,$nomImage);
- break;
- }
- }
- function imagecreatefromanytype ($nomImage)
- {
- if (!IMG_JPEG) exit("erreur: librairie GD non activée!");
- $info = getimagesize($nomImage);
- switch ($info[2])
- {
- case IMG_GIF:
- return imagecreatefromgif($nomImage);
- $fctImage = imagegif;
- break;
- case IMG_JPEG:
- return imagecreatefromjpeg($nomImage);
- break;
- case IMG_PNG:
- return imagecreatefrompng($nomImage);
- break;
- case IMG_WBMP:
- return imagecreatefromwbmp($nomImage);
- break;
- case IMG_XBM:
- return imagecreatefromxbm($nomImage);
- break;
- }
- }
- function vignette ($nomImage, $largeur_dest = 100,$hauteur_dest = 75)
- {
- $source=imagecreatefromanytype($nomImage);
- $largeur_src = imagesx($source);
- $hauteur_src = imagesy($source);
- $imageFinale = imagecreatetruecolor ($largeur_dest,$hauteur_dest);
-
- $hauteur_temp=floor($largeur_dest*$hauteur_src/$largeur_src);
- $largeur_temp=floor($largeur_src*$hauteur_dest/$hauteur_src);
-
- if($largeur_temp >= $hauteur_temp AND $largeur_temp >= $largeur_dest) //on prend la hauteur
- {
-
- $semi_diff= floor(($largeur_temp - $largeur_dest )/2);
- imagecopyresampled($imageFinale, $source, -$semi_diff, 0, 0,0, $largeur_temp, $hauteur_dest, $largeur_src, $hauteur_src);
- }
- else //on prend la largeur
- {
-
- $semi_diff= floor(($hauteur_temp - $hauteur_dest )/2);
- imagecopyresampled($imageFinale, $source, 0, -$semi_diff, 0, 0, $largeur_dest, $hauteur_temp, $largeur_src, $hauteur_src);
- }
- imageanytype($imageFinale,dirname($nomImage)."/_thb_".basename($nomImage),100);
- return(dirname($nomImage)."/_thb_".basename($nomImage));
- }
- ?>
<?php
function get_extension($filename)
{
$ext = substr(strtolower(strrchr(basename($filename), ".")), 1);
return $ext;
}
function imageanytype ($image,$nomImage, $quality=100)
{
if (!IMG_JPEG) exit("erreur: librairie GD non activée!");
switch (get_extension($nomImage))
{
case "gif":
return imagegif($image,$nomImage);
$fctImage = imagegif;
break;
case "jpg":
return imagejpeg($image,$nomImage,$quality);
break;
case "png":
return imagepng($image,$nomImage);
break;
case "wbmp":
case "bmp":
return imagewbmp($image,$nomImage);
break;
case "xbm":
return imagexbm($image,$nomImage);
break;
}
}
function imagecreatefromanytype ($nomImage)
{
if (!IMG_JPEG) exit("erreur: librairie GD non activée!");
$info = getimagesize($nomImage);
switch ($info[2])
{
case IMG_GIF:
return imagecreatefromgif($nomImage);
$fctImage = imagegif;
break;
case IMG_JPEG:
return imagecreatefromjpeg($nomImage);
break;
case IMG_PNG:
return imagecreatefrompng($nomImage);
break;
case IMG_WBMP:
return imagecreatefromwbmp($nomImage);
break;
case IMG_XBM:
return imagecreatefromxbm($nomImage);
break;
}
}
function vignette ($nomImage, $largeur_dest = 100,$hauteur_dest = 75)
{
$source=imagecreatefromanytype($nomImage);
$largeur_src = imagesx($source);
$hauteur_src = imagesy($source);
$imageFinale = imagecreatetruecolor ($largeur_dest,$hauteur_dest);
$hauteur_temp=floor($largeur_dest*$hauteur_src/$largeur_src);
$largeur_temp=floor($largeur_src*$hauteur_dest/$hauteur_src);
if($largeur_temp >= $hauteur_temp AND $largeur_temp >= $largeur_dest) //on prend la hauteur
{
$semi_diff= floor(($largeur_temp - $largeur_dest )/2);
imagecopyresampled($imageFinale, $source, -$semi_diff, 0, 0,0, $largeur_temp, $hauteur_dest, $largeur_src, $hauteur_src);
}
else //on prend la largeur
{
$semi_diff= floor(($hauteur_temp - $hauteur_dest )/2);
imagecopyresampled($imageFinale, $source, 0, -$semi_diff, 0, 0, $largeur_dest, $hauteur_temp, $largeur_src, $hauteur_src);
}
imageanytype($imageFinale,dirname($nomImage)."/_thb_".basename($nomImage),100);
return(dirname($nomImage)."/_thb_".basename($nomImage));
}
?>
Conclusion
Pour afficher le résultat: <img src="<?php echo vignette("SourceImage.jpg"); ?>" style="border:solid 1px black;" /> ou
<img src="<?php echo vignette("SourceImage.jpg",70,50); ?>" style="border:solid 1px black;" />
voire
<a href="SourceImage.jpg"><img src="<?php echo vignette("SourceImage.jpg",75,50); ?>" style="border:solid 1px black;" /></a>
P.S.: n'oubliez pas: 1. Il vous faut la librairie GD activée 2. Il vous faut les droits d'écriture sur le dossier 3. enjoy ;-)
Historique
- 07 juillet 2009 12:11:33 :
- Mise à jour selon conseils de Flachy Joe
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Thumbnail en php ? [ par Vag ]
Salut à tousJe voudrai savoir s'il est possible de générer une miniature (thumbnail) de résolution inférieure d'une image uploadée sur le serveur, tou
redimensionner une image [ par kinooo ]
Est ce que qq un pourrait m'expliquer comment faire pour redimensionner une image.et evantuellement comment afficher une image en taille reduite.merci
Créer une vignette [ par cercleaventure ]
Je vient de faire le tour des sources pour générer des vignettes mais je doit dire que je suis pomé.Ce que je cherche c'est un script qui m'affiche so
Redimensionner le background d'un <table> [ par chewbacca156 ]
Hello !Je souhaiterais que l'image de fond de mon menu (généré dynamiquement) s'adapte à la longueur de ce dernier. Tout simplement car une image en d
redimensionner une fenetre [ par agora_13 ]
Boujour,Je sais que ce que je chercher n'est pas du php mais je dois réaliser un programme en PHP MySQL et j'aimerais savoir comment on peut redimensi
redimensionner une image [ par scoder ]
Bonjour, je suis webmaster d'un site consacré au jeu en ligne, et j'ai une rubrique qui recense d'autres équipes. Elles ont chacune une bannière mais
Recadrer une image pour faire une prévisualisation d'image [ par diedatnight ]
J'aimerais savoir si il est possible de recadrer une section d'une image pour en faire une prévisualisation.Merci !
vignette automatique des sites [ par mgnet ]
Bonjour à tous et à toutes je souhaiterai savoir comment procéder pour améliorer un annuaire et pouvoir faire une vignette qui sera mises à jour chaqu
Thumbnails de mauvaise qualité [ par RockmanX ]
Salut!Je me suis inspiré d'une source de ce site pour créer cette fonction:$imgsrc est l'adresse de l'image de mon serveur, $impwidth est la
Redimensionner une page... [ par Leneuf8000 ]
Rebonjour, je laisse pas mal de message aujourd'hui, mais je suis toujours bloqué... Après avoir réussi à intégré une pa
|
Derniers Blogs
[WP7] UTILISER UN WRAPPANEL DANS UNE APPLICATION WINDOWS PHONE 7[WP7] UTILISER UN WRAPPANEL DANS UNE APPLICATION WINDOWS PHONE 7 par Audrey
Lors de la réalisation de ma 2ème application Windows Phone 7, j'ai souhaité utiliser un WrapPanel pour afficher plusieurs photos. Mais le contrôle WrapPanel ne fait pas parti de la liste des contrôles inclus dans le SDK de la version Beta des outils pour...
Cliquez pour lire la suite de l'article par Audrey [WP7] BESOIN D'AVOIR DES DONNéES EN CACHE[WP7] BESOIN D'AVOIR DES DONNéES EN CACHE par Nicolas
Les développeurs ASP.NET ont l'habitude de mettre des données en cache pour éviter de requêter a chaque fois la base de données. Et il est toujours utilie de penser que vos utilisateurs mobiles n'ont pas troujours une super connexion 3G/WIFI et un for...
Cliquez pour lire la suite de l'article par Nicolas [TFS] COMMENT FORCER LA SAISIE D'UN AREA OU ITERATION[TFS] COMMENT FORCER LA SAISIE D'UN AREA OU ITERATION par cyril
Lorsque l'on créé un Work Item dans TFS, il est possible de le classer dans un "area" et dans une "iteration". Dans la plupart des types de projet, un "area" correspond à une catégorie, une "iteration" à un numéro de version. Il est possible de cré...
Cliquez pour lire la suite de l'article par cyril SQL : FONCTIONS D'AGRéGATION MIN/MAX ET VALEURS NULLSQL : FONCTIONS D'AGRéGATION MIN/MAX ET VALEURS NULL par coq
Les fonctions d'agrégation comme MIN et MAX ignorent les valeurs NULL présentes dans le jeu de données sur lequel porte leur calcul, d'où le fameux message d'avertissement : Warning: Null value is eliminated by an aggregate or other SET operation...
Cliquez pour lire la suite de l'article par coq VOTEZ POUR WARNYGOVOTEZ POUR WARNYGO par Nicolas
La vidéo du projet Warnygo est disponible sur facebook et attend vos votes ! Pour rappel: Warnygo est une application Windows Phone 7 qui permet d'alerter tous utilisateurs inscrits qui se trouve dans la zone où se passe l'...
Cliquez pour lire la suite de l'article par Nicolas
Logiciels
sDEVIS-FACTURES vlPRO (3.8.0)SDEVIS-FACTURES VLPRO (3.8.0)sDEVIS-FACTURES vlPRO a été mis au point pour permettre besoins des particuliers, créateurs, entr... Cliquez pour télécharger sDEVIS-FACTURES vlPRO LettresFaciles (5.6.0)LETTRESFACILES (5.6.0)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles MyPlanning 2010 (5.6.0)MYPLANNING 2010 (5.6.0)MyPlanning 2010 permet de créer des plannings sous la représentation de diagrammes. Plannings pré... Cliquez pour télécharger MyPlanning 2010 Emicsoft Mac DVD en iPad Convertisseur (3.1.16)EMICSOFT MAC DVD EN IPAD CONVERTISSEUR (3.1.16)Emicsoft Mac DVD en iPad Convertisseur, logiciel professionnel de convertir les fichiers DVD en i... Cliquez pour télécharger Emicsoft Mac DVD en iPad Convertisseur Emicsoft ipad ménager pour mac (3.1.08)EMICSOFT IPAD MéNAGER POUR MAC (3.1.08)Emicsoft ipad ménager pour mac est spécialement conçu pour les utilisateurs Mac pour copier des f... Cliquez pour télécharger Emicsoft ipad ménager pour mac
|