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
CSS CONTENT STATE SELECTORS (PERSONNAL DRAFT)CSS CONTENT STATE SELECTORS (PERSONNAL DRAFT) par FREMYCOMPANY
Bonjour à tous, Je viens de publier une proposition comprenant 5 pseudo-classes pour le CSS Working Group ayant trait à l'état de chargement d'un élément (ex: IMG,VIDEO,AUDIO,OBJECT pour l'HTML.). Si le c½ur vous en dit, vous pouvez retrouver cette p...
Cliquez pour lire la suite de l'article par FREMYCOMPANY MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ?MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ? par ROMELARD Fabrice
Formation initiale Durant la formation, le découpage classique est le suivant (je donnerai les équivalences Suisse lorsque je les connaîtrais) : Ecole primaire jusqu'au Collège : Formation générale permettant d'obtenir les méthodes...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice Y'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENTY'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENT par Aleks
Quand on a ce genre d'erreur sans log :
Et bas on a juste envie de choper le gas de Microsoft qu'a développé ça et lui foutre des baffes de Coboye ! ...
Cliquez pour lire la suite de l'article par Aleks [HYPER-V 3] PRéSENTATION DES COMMANDLETS POWERSHELL[HYPER-V 3] PRéSENTATION DES COMMANDLETS POWERSHELL par Pierrick CATRO-BROUILLET
Avec la sortie prochaine de la Beta Consumer Preview de Windows 8, j'avais envie de revenir sur une des fonctionnalités que j'attends le plus et que, en bon geek que je suis, j'utilise déjà : Hyper-V 3 ainsi son module PowerShell.
Il y a déjà pléthor...
Cliquez pour lire la suite de l'article par Pierrick CATRO-BROUILLET IIS7 - COMPRESSION GZIPIIS7 - COMPRESSION GZIP par cyril
La compression GZIP permet d'améliorer les performances de navigation en compressant ce qu'envoie le serveur à un client. Pour comprendre comment cela fonctionne, regardons ce qu'il se passe au niveau HTTP lorsqu'un client tente d'accéder à une ress...
Cliquez pour lire la suite de l'article par cyril
Logiciels
Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning Academy System (17.1.3.0)ACADEMY SYSTEM (17.1.3.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|