Designed by Derf !
42 en ligne
  Forum | Actu | Glossaire | Codes | Tips | Liens | Livres | Annuaire
 

 Recherche





   

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 (11 699 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  
PHP - Drupagora : 1ère edition
Utiliser Reporting Services pour des NewsLetter - SQL Server Reporting Services et les NewsLetters
Le moteur de rapport inclus dans Microsoft SQL Server permet de créer de nombreux rapports ...
Changer la page d'erreur 401 SharePoint - La page d'erreur d'authentification SharePoint
Avec l'authentification classique des sites SharePoint, l'erreur d'authentification est gérée par ...
PHP - Graphique de l'angle du soleil en fonction du lieu
PHP5 - Graphique de l'angle du soleil en fonction du lieu
Adobe - Disponibilité d'Adobe Creative Suite 5.5
Les Thèmes dans SharePoint 2010 - Gérer les thèmes dans SharePoint 2010
SharePoint 2010 apporte de nombreuses modifications dont certaines dans le principe des thèmes.
JavaScript - fonction qui affiche l'heure à travers javascript
Installer SharePoint Foundation 2010 sur Windows 7 - Installer SP Foundation 2010 sur Windows Seven
Lorsque l'on souhaite développer dans le monde SharePoint, il existe plusieurs solutions. La ...
SharePoint et SQL Server 2008 R2 Report Server - Comment accéder à SharePoint depuis SSRS 2008 R2
Depuis la première version, la solution de rapport proposée par Microsoft "SQL Server Reporting ...
JS - Envoi d'un formulaire après chargement d'une image
Divers - Bannir une ip dans le global asax
Dreamweaver CS5 - Nouvelle version Dreamweaver CS5
Déjà plus de 6 mois que le produit est sorti, il fallait bien que je vous en parle un peu. Je vous ...
SharePoint Output Caching dans un site Intranet - Comment utiliser le cache dans un site Publishing
Afin de permettre l'amélioration des performances de sa ferme MOSS utilisée pour le site portail ...
Adobe - Adobe lance le Musée Adobe des Médias Numériques
Adobe - Adobe lance HTML5 Pack pour Illustrator CS5
PHP - Forum PHP 2010 : Le programme
Magazines - Le numéro 133 de programmez est disponible
Adobe - Adobe lance des applications Photoshop Express....
PHP - Détermination de l'intersection entre 2 segments
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
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 MVP Groupes Utilisateurs Microsoft DotNet Project ASP-magazine