Designed by Vince El Roubio !
75 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 (4 179 hits)
Didier Testez gratuitement la plateforme web de Windows Server 2008 !
Gagnez un voyage aux Etats-Unis pour la MS Project Conference !
Au fil des news  
CSharp - Sérialisation XML de vos objets
Magazines - Le n°121 de Programmez est disponible
Adobe - Adobe annonce MAX 2009 !
Outils - WhoIs
[MAJ] Dreamweaver MX + Php + MySql - Les formulaires - partie 3
Mise à jour du code, par DB 77, affichage du code erreur, dans la page erreur.php, traduction des ...
PHP - News avec photo - Système de gestion - affichage
Gestion - Administration - Affichage d'une "News", "Actualité", "Info", ... avec : - mise en forme ...
Outils - Crypt
Dreamweaver Php Mysql - Région répétée imbriquée
Je rebondis, sur un post du forum, pour vous montrer comment obtenir grâce à l'extension Simulated ...
Magazines - Le n° 120 de Programmez est disponible
Gérer les bases de contenu SharePoint - Gérer la croissance du volume des données
Dans le cadre de la gestion quotidienne de ferme SharePoint, il existe une partie qu'il faut ...
PHP - Le Coach PHP sur Visual Studio
.NET - Ecrire une application .NET utilisant MySQL
PHP - Utilisation de PHP dans le monde Microsoft
Magazines - Le n° 119 de Programmez est disponible
Adobe - Adobe annonce Photoshop Marketplace
[MAJ] Tutoriel AJAX simple - En avant vers le WEB2.0
Mis à jour le 20/04/2009
Captcha «maison» sans extension - Et en plus, c'est gratuit ;)
Un ami m'a demandé de l'aide ce matin pour insérer un captcha dans un formulaire pour son site ...
Dreamweaver CS4 - Photoshop CS4 - Alliance parfaite pour la gestion des images
Pour changer un peu des pages de code, je vous propose de voir ensemble, la fonctionnalité très ...
JavaScript - Calcul automatique d'une facture
Amélioration du Search MOSS: Manipulation XSL - Utilisation du XSL dans l'affichage des résultats
Parmi tous les articles sur l'amélioration du moteur de recherche de Microsoft Office SharePoint ...
Outils - Editeur d'icônes IcoFX
Magazines - Le n°118 de Programmez est disponible
JavaScript - Imprimer une autre page que celle en cours
CSS - div pour imiter frame (Bandeau/Menu FIXES)
[MAJ] [PHP] Un calendrier très complet -
ajout des événements au calendrier
PowerShell - Winforms pour l'aide des commandes GET PowerShell
Adobe - Adobe Photoshop Lightroom 2 est offert ....
Amélioration du Search MOSS: synonyme et Best Bet - La gestion des synonymes dans MOSS Search
Le moteur de recherche de MOSS permet la configuration d'une liste de synonymes. Nous verrons donc ...
AJAX - récup champs formulaires pour POST en AJAX
PowerShell - Un windows Forms pour SharePoint en PowerShell
Sondage associatif (compatibilité) - Qui va bien avec qui ?
Cette fois, c'est un petit sondage que je vous propose. Il pourra bien sûr être adaptée à vos ...
ASP - Hashage MD5 (cryptage irréversible)
Adobe - 80% de réduction sur les versions Adobe Creative
CSharp - Interroger un serveur Whois
CSharp - Equivalent de la fonction PHP htmlentities()
CSharp - Somme de contrôle CRC32
Magazines - Le n°117 de Programmez est disponible
Hebergement - Hébergement ASP et ASP.Net
MOSS - Mon Profil - Personnalisation des profils utilisateurs de MOSS
La gestion des profils utilisateurs de SharePoint fait partie des fonctionnalités de base de ...
Dreamweaver CS3 + Php + Mysql - Le Jeu d'Enregistrements - Les fondamentaux Part-3
La 3ème partie des fondamentaux, traitera essentiellement du jeu d'enregistrements ou Recordset. ...
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
 CodePPC El Roubio MVP TechNet ASP-magazine Codes Sources The Inquirer FR Wygwam Groupes Utilisateurs Microsoft DotNet Project