Designed by Gaetan !
89 en ligne   Boutique | Sites | Bar | Forum | PhpBB | Actu | Glossaire | Codes | Tips | Liens | Livres | Lettre  


 Recherche

 NewsLetter






   

Création de miniatures

Fonction php de création





visualight
Cette fonction sert à créer des miniatures.

// Fichier Fct_resize.php
<?php
// $Hauteur_Miniatures provient par exemple d'un fichier de configuration
// où est stocké la hauteur de la miniature (en px).
// ex.: $Hauteur_Miniatures = 150;

function creer_miniature($img_big$dirSrc$dirDest$Hauteur_Miniatures) {
$tnH $Hauteur_Miniatures;
$t_rename 0;
$th_quality 1;
$img_big $dirSrc "/" $img_big;
$size = @getimagesize($img_big);
switch(
$size[2]){
case 
1:
if (
imagetypes() & IMG_GIF)
$src imagecreatefromgif($img_big); 
break;
case 
2:
if (
imagetypes() & IMG_JPG)
$src imagecreatefromjpeg($img_big); 
break;
case 
3:
if (
imagetypes() & IMG_PNG)
$src imagecreatefrompng($img_big);  
break;
default :
if (
preg_match("/\.wbmp$/",$img_big) && (imagetypes() & IMG_WBMP)){
$src imagecreatefromwbmp($img_big);
$size[0] = imagesx($src);
$size[1] = imagesy($src);
if (!isset(
$format))
$format 4;
}
}
if (!
$src){
$thumbs[$img_big] = "Format NON SUPPORTE !";
}else{
$destW $size[0]*$tnH/$size[1];
$destH $tnH;
if (
$th_quality == 1){
$dest imagecreatetruecolor($destW,$destH);                     
imagecopyresampled($dest,$src,0,0,0,0,$destW,$destH,$size[0],$size[1]);      
} else {
$dest imagecreatetruecolor($destW,$destH);
imagecopyresized($dest,$src,0,0,0,0,$destW,$destH,$size[0],$size[1]);
}
$tn_name $img_big;

// ICI VOUS POUVEZ DEFINIR DE RENOMMER LE FICHIER
// Exemple: "_m" renommera : fichier.jpg en fichier_m.jpg

$tn_name preg_replace("/\.(gif|jpe|jpg|jpeg|png|wbmp)$/i","_m",$tn_name);
$tn_name preg_replace("/.*\/([^\/]+)$/i","$dirDest\\1",$tn_name);
if (isset(
$format))
$type $format;
else
$type $size[2];
switch(
$type){
case 
:
if (
imagetypes() & IMG_GIF){
imagegif($dest,$tn_name.".gif");
$thumbs[$img_big] = "$tn_name.gif";
}
break;
case 
2:
if (
imagetypes() & IMG_JPG){
imagejpeg($dest,$tn_name.".jpg");
$thumbs[$img_big] = "$tn_name.jpg";
}
break;
case 
3:
if (
imagetypes() & IMG_PNG){
imagepng($dest,$tn_name.".png");
$thumbs[$img_big] = "$tn_name.png";
}
break;
default:
if (
imagetypes() & IMG_WBMP){
imagewbmp($dest,$tn_name.".wbmp");
$thumbs[$img_big] = "$tn_name.wbmp";
}
}
if (!(
$thumbs[$img_big])){
$thumbs[$img_big] = "Format NON SUPPORTE !";
}
// FIN CREATION
}
}
?>

Pour appeler la fonction, il faut faire comme suit ...

Où dans cet exemple :

- $f = provient d'un readdir
- $rep = nom du répertoire (ex.: events/album1/wazza/)
- $rep.'medium/' = répertoire de destination (droits nobody ou 777)
- $Hauteur_Affiches_Events = La hauteur désirée de l'affiche (ex.: 200)

<?php creer_miniature($f$rep$rep.'medium/'$Hauteur_Affiches_Events); <?

Pour effectuer récursivement la redimension de miniatures à la volée, rien de tel qu'une bonne vieille boucle while sur le readdir ...

Exemple :
<?php
// $repertoire provient d'une base de donnée par exemple
$rep ''.$repertoire.'/'.$CfgDirAffiche.'/';
$dir opendir($rep);

while (
$f readdir($dir)) {
// Vérification de  l'extension pour ne pas renommer
// un fichier Exécutable (swf ou autre éventuellement présent)
if(strtolower(substr($f, -3)) == "jpg" || strtolower(substr($f, -3)) == "gif"
   
|| strtolower(substr($f, -3)) == "png" || strtolower(substr($f, -3)) == "wbmp"){

// REDIMENSIONNEMENT DES AFFICHES SI LES MINIATURES N'EXISTENT PAS
if(!file_exists($rep.'medium/'.$medium_f)){
creer_miniature($f$rep$rep.'medium/'$Hauteur_Affiches_Events);
}

echo 
'<table class="Tableau" width="100" cellspacing="0" cellpadding="0"
align="center"><tr><td><div align="center"><a href="'
.$repertoire.'/'.$CfgDirAffiche
.'/'.$f.'" target="_blank"><img src="'.$repertoire.'/'.$CfgDirAffiche.'/medium/'
.$medium_f.'" border="0"></a></div></td></tr></table>';
}
?>

Et voilà ... Bonne prog ;)

Pour pouvoir écrire dans ce forum, identifiez-vous !

  v1.3p © ASP-PHP.net 2002  

visualight le 23/06/2008 (7 742 hits)
Didier Téléchargez gratuitement et légalement des logiciels Microsoft ! Si, si ;)
  • Visual Studio 2010
  • Office 2010
  • Expression Studio 3
  • SQL Server 2008
  • et d'autres...
Au fil des news  
Magazines - Le N°132 de Programmez est disponible
Les alertes dans SharePoint 2007 - Comment SharePoint 2007 gère les User Alerts
Une des fonctionnalités de base de SharePoint, aussi bien dans Windows SharePoint Services (WSS) ...
Adobe - Photoshop.com Mobile pour Android 1.2
Adobe - Adobe dévoile une technologie de lecture.......
PHP - Experts PHP : participez au Forum PHP 2010 !
PHP - Fobec.com - Code source PHP & javascript
Foliotage alphabétique - Lister sur la première lettre d'un champ
Pour faire suite à l'article de JPierre sur la pagination alphabétique, voici, en ASP et en PHP, ...
Dreamweaver CS4 + Php + Mysql - Pagination alphabétique
Je vous propose la création d'une barre de navigation ou pagination alphabétique pour filtrer les ...
Adobe - HTML5 dans Dreamweaver CS5
VBScript - Déterminer si un chemin est absolu ou relatif
VBScript - Lire/écrire un fichier texte
Magazines - Le N°130 de Programmez est disponible
Hebergement - Hébergement à prix libre
Adobe - Adobe Creative Suite 5
PHP - Calcul de la date de Pâques
Magazines - Le N°128 de Programmez est disponible
Magazines - Le N°127 de Programmez est disponible
Dreamweaver CS4 + Php + Mysql - Trucs et Astuces - Part 6
Pour continuer dans le même style, je vous propose une suite au précédent article. Rechercher tous ...
Adobe - Adobe Photoshop.com Mobile pour iPhone 1.1
JavaScript - Ajouter une page dans vos favorites
Dreamweaver CS4 + Php + Mysql - Trucs et Astuces - Part 5 -
Je vous propose cette fois deux astuces. Comment exporter une feuille de style avec l'aide de ...
SharePoint Personalization Site Links - Les liens personnalisés des MySite SharePoint
Nous avons vu dans les articles précédents comment agrémenter les pages de recherche afin de ...
Magazines - Le n°126 de Programmez est disponible
Outils - Traducteur en ligne automatique pour site web
Adobe - Adobe Photoshop.com Mobile pour Iphone
Magazines - Le n°125 de Programmez est disponible
Adobe - Adobe AIR 2 et Flash Player 10.1version bêta
Les conférences autour des technologies Microsoft - Liste non exhaustive des grands évènements
Nous allons essayer de regrouper un grand nombre des évènements autour des technologies Microsoft ...
Magazines - Le n°124 de Programmez est disponible
PHP - Forum PHP 2009
Composants - eFace - XAML en Java
WPF - Désactiver le bouton de réduction d'une fenêtre
Magazines - Le n°123 de Programmez est disponible
Magazines - Le n°122 de Programmez est disponible
Auditer une ferme SharePoint - Assurer le bon fonctionnement de SharePoint
Dans le cadre de la bonne gestion de son environnement SharePoint, il est utile de faire un ...
SQL Server 2008 Report Builder 2.0 - Installation et utilisation de Report Builder 2.0
Dans le cadre de la création de rapports pour SQL Server Reporting Services 2008, un outil est ...
Magazines - Le HS N° 1 de Web Design est disponible
Adobe - Adobe propose en Open Source les frameworks.....
Outils - EntityBuilder
CSharp - Sérialisation XML de vos objets
Tutorial : HTML | Scripting | ASP-PHP | ASP.net | SQL Server | XML
Sharepoint | XAML | Pocket | Dreamweaver | VML | Divers
  Scripts : Scripting | ASP-PHP | ASP.net | Divers
  Boutique | Annuaire | Bannières | Météo | Tribune | Partenariats
v3b © Didier 2003   
 

Corpo Sciences de Reims Partitions gratuites Carte, météo, annonces
 TechNet DotNet Project Groupes Utilisateurs Microsoft MVP ASP-magazine