Designed by Vince El Roubio !
100 en ligne   Boutique | Sites | Bar | Forum | PhpBB | Actu | Glossaire | Codes | Tips | Liens | Livres | Lettre  


 Recherche

 NewsLetter





   

Afficher ses images à la taille voulue

Utilisation du composant IMGSIZE





DB77
Devant la diversité des formats d'image actuels, il est parfois nécessaire de connaître les dimensions d'une image afin d'adapter les paramètres «width» et «height» lors de son affichage sur une des pages du site.
C'est notamment le cas si vous proposez à vos visiteurs de déposer sur votre site leur avatar.
Aurélien nous a déjà proposé une solution et vous trouverez deux liens sur ces deux articles un peu plus bas sur cette page.
En ASP, il existe un composant gratuit qui permet de connaître ces dimensions. En PHP, il suffit d'utiliser la fonction getimagsize ;

 

Voyons donc les étapes successsives de sa mise en oeuvre.

 Installation 
Comme beaucoup de composants, il s'agit d'une DLL à copier sur le serveur et à enregistrer dans la base de registre.
Il convient donc, dans un premier temps, de copier le fichier «IMGSIZE.DLL» sur le disque de votre serveur.
Dans un deuxième temps, il faut exécuter, sur le serveur, la commande «REGSVR32 chemin_d'_accès_à_la_DLL»
Exemple :
Si vous copiez le fichier «IMGSIZE.DLL» dans «C:\outils\IMGSIZE.DLL», il faudra exécuter la commande : «REGSVR32 C:\outils\IMGSIZE.DLL»
Le composant ImgSize

 Utilisation 
Voyons d'abord comment fonctionne ImgSize

<% 
' Création d'un objet IMGSIZE
Set Picto=Server.CreateObject("ImgSize.Check")
' Déclaration de l'image à analyser
Picto.FileName="C:\Images\truc.gif"
' On teste s'il y a une erreur
if Picto.Error <> "" then
   Response.Write "Erreur : <b>" & Picto.Error & "</b>"
else
   ' Récupération des dimensions
   largeur=Picto.Width
   hauteur=Picto.Height
End if
' Libération de l'objet
Set Picto=Nothing
%>


 Concrètement 
Supposons que vous autorisez un avatar qui fasse 100 pixels de large sur 100 pixels de haut au maximum.
Comment faire pour conserver la proportionnalité de l'image uploadée par votre utilisateur ?
Tout d'abord, allez jeter un oeil sur les scripts d'Aurélien :
RedimImage  et :  AveImgClass
Maintenant, voici celui que je vous propose :

<% 
' Nous allons créer une procédure
Sub Redimimage(urlimg,maxX,maxY)
' Vérifier que l'image existe bien
Set FSO = Server.CreateObject("Scripting.FileSystemObject") 
dir = Server.MapPath("./") ' Vous mettrez ce que vous voulez
Fnm = dir & "\" & urlimg
if FSO.FileExists(Fnm) then
   ' Création d'un objet IMGSIZE
   Set Picto=Server.CreateObject("ImgSize.Check")
   ' Déclaration de l'image à analyser
   Picto.FileName=Server.Mappath("./"&urlimg)
   ' On teste s'il y a une erreur
   if Picto.Error <> "" then
      Response.Write "Erreur : <b>" & Picto.Error & "</b>"
   else
      ' Récupération des dimensions
      largeur=Picto.Width
      hauteur=Picto.Height
      ' Libération de l'objet
      Set Picto=Nothing
      ' Calculons le ratio idéal
      ratiox=largeur/maxX ' Ratio en largeur
      ratioy=hauteur/maxY ' Ratio en hauteur
      if(ratiox>ratioy) then ' Quel est le plus grand
         ratio=ratiox
      else
         ratio=ratioy
      end if
      response.write "<img src="&urlimg&" width="&Cint(largeur/ratio)&" height="&Cint(hauteur/ratio)&">"
   end if
end if
Set FSO=Nothing
end sub
'
' Et cette procédure sera appelée comme ceci :
'
Redimimage "photos/db77.gif",100,100
%>



A vos avatars...
Affichez bien vos images...

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

 Lire  07/10/08 13:48 de fedebul
bonjour, auriez une version de ce script en php ? me...
  • 07/10/08 14:10 de DB77 Là : http://www.asp-php.net/tutorial/asp-ph...
  • 07/10/08 14:25 de fedebul merci beaucoup , de plus j'ai un tit p...
  • 07/10/08 14:38 de DB77 Regarde sur la ligne d'avant s'il ne manque...
  • 07/10/08 14:40 de DB77 Fais un copier/coller de ça : echo "<tr>...
  •  Lire  20/06/08 18:27 de jreaux62
    Bonjour Denis, je voudrais ENREGISTRER l'image APRES...
  • 20/06/08 20:36 de DB77 Non, Jérôme, ImgSize ne fait que récupérer ...
  • 21/06/08 03:12 de jreaux62 Je m'en doutais un peu ! Je voulais ...
  •  Lire  16/06/08 23:00 de Didier
    Sympa ! Tiens l'article est déjà en tête dans Goog...
  • 17/06/08 07:09 de DB77 ESt-ce que je peux le mettre ici car le sit...
  • 17/06/08 07:11 de DB77 Il y a bien aspimage comme l'a expliqué jre...
  • 17/06/08 09:00 de JPierre Bien joué Denis, toujours au top, à l'...
  • 17/06/08 10:53 de Didier Oui mets-les sur le site
  • 17/06/08 12:42 de jreaux62 Bonjour Denis (et les autres, bien su...
  • 17/06/08 12:48 de DB77 Oui Jérôme, j'ai vu tout ça. C'est très bi...
  • 17/06/08 13:11 de jreaux62 Merci Denis. "Petit à petit, l'ois...
  • 17/06/08 17:27 de Didier Le composant est en place sur le site à ...
  • 17/06/08 17:28 de Didier Idem pour IMGSIZE :) http://www.asp-php...
  • 17/06/08 17:34 de DB77 Merci Didier
  • 18/06/08 09:00 de DB77 Didier, pour AspSmartUpload, je l'avais déj...
  •   v1.3p © ASP-PHP.net 2002  

    DB77 le 23/06/2008 (4 036 hits)
    Didier Réservez votre place gratuite pour les Microsoft TechDays 2009 !!!
    Un serveur dédié Dedibox avec la licence Windows Server 2008 gratuite !!!

    MSDN fête ses 10 ans ! Gagnez 1 Nabaztag, 1 montre binaire, 1 console Xbox, 1 ordinateur ultra-portable EeePC, 1 HTC Diamond et bien d’autres cadeaux… !!!
    Au fil des news  
    [MAJ] [PHP] Un calendrier très complet -
    Remplacement de balises pour le PHP5 et modifications du script pour l'affichage des jours afin ...
    Magazines - Le n°113 de Programmez est disponible
    PHP - Compteur de visites (hit) paramétrable
    Amélioration du Search MOSS : Recherche avancée - Modification de la page de recherche avancée
    Dans la série des optimisations potentielles sur le moteur de recherche de MOSS, nous verrons cette ...
    Dreamweaver CS3 + Php + Mysql - Ajout-Modif-Suppression. Les fondamentaux Part-1
    Suite à de nombreuses questions sur le forum, je pense que ce sujet sur les comportements d'ajout, ...
    SharePoint et Silverlight - Premiers pas - Lecture de données SharePoint et intégration
    Silverlight et SharePoint sont deux technologies récentes et connaissant un essor significant. En ...
    Développement d'applications SharePoint - depuis une Workstation XP ou Vista
    Lorsque que l'on développe pour SharePoint, on se retrouve dans un dilemme auquel nous avons tous ...
    JavaScript - sudoky - jeux du sudoku en javascript
    Adobe - Creative Suite 4 en Français
    PHP - La 8ème édition du Forum PHP est lancée !
    Magazines - Le n°112 de Programmez est disponible
    PHP - Interpreteur de commande SQL en PHP
    Listes liées (dépendantes) : avec ou sans XMLHTTPR - Les délires «Ajax or not Ajax»
    Comme toujours, c'est à la suite d'un coup de pouce que je me suis décidé à faire ce tuto. Merci à ...
    Amélioration du Search MOSS : Les scopes - Quelques possibilités d'amélioration du Search
    Lorsqu'on installe le moteur de recherche de MOSS et qu'on le configure basiquement, on veut ...
    SharePoint - Lister les templates utilisés - Identifier les définitions utilisées par vos sites
    Un site SharePoint est créé à partir d'un modèle ou définition de site. Mais comment savoir après ...
    PowerShell - Profile avec la participation de mon ami Tigrou :)
    Adobe - Lancement de la CS4, tous à vos agendas !
    [MAJ] PHP - Fonctions de redimensionnement d'images - BD : redimensionner image + picto après upload
    Ajout de FONCTIONS de redimensionnement.
    PHP - Afficher une date mysql yyyy-mm-dd en dd-mm-yyyy
    PHP - Tchat PHP V2.1 sans base de donnée
    SharePoint et les statistiques d'utilisation - Comment obtenir des statistiques depuis SharePoint
    La mise en place de ferme SharePoint doit s'accompagner d'une notion de gouvernance. Cette notion ...
    Adobe - Nouvelles annonces Adobe sur le salon IBC 2008
    PHP - PHP TV emission 2 (septembre 2008)
    PHP - PDO ADMIN
    [MAJ] Inscription contrôlée à une NewsLetter ou Service - Abonnement avec confirmation et désabonnement
    Correction d'un point-virgule manquant (merci de m'avoir obligé à chercher JPierre) dans le module ...
    PHP - Premier lundi d'une semaine et d'une année
    JavaScript - Premier lundi d'une semaine et d'une année
    ASP - Premier lundi d'une semaine et d'une année
    Alphabet Radio et Code Morse - Alpha Zulu appelle Tango Charlie !
    Encoder-Décoder en "Alphabet Radio" ... "Alpha Zulu appelle Tango Charlie !" ou en Code Morse ... ...
    Filtrer les modèles de site SharePoint - Filtrer l'affichage des modèles de site SharePoint
    Je vous propose de découvrir à l'aide de cet article quels mécanismes peuvent vous permettent de ...
    ASP/PHP - Méthode de cryptage - par table de correspondance
    (ASP/PHP) Une méthode de cryptage de données par l'utilisation d'une "table de correspondance ...
    PHP - Listes liées (1 table) - version2
    JavaScript - Rendre Visible ou Invisible des éléments d'un form
    PHP - Listes liées (1 table) - version1
    JavaScript - Intercepter le click sur vidéo WMP ou flash SWF
    Jeux de l'été (et de 5) - Un jeu de Motus (mots de 8 lettres)
    C'est reparti pour un tour... Comme je venais de proposer un jeu de Mastermind, je me suis dit que, ...
    PowerShell - Extraire toutes les collections SharePoint en CSV
    PowerShell - Lister les collections pour une WebApp SharePoint
    PowerShell - Lister les utilisateurs d'un site SharePoint
    PowerShell - Connaître le code version de votre SharePoint
    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
    v3 © Didier 2003   
     

    Corpo Sciences de Reims Partitions gratuites Carte, météo, annonces
     Codes Sources DotNet Project Groupes Utilisateurs Microsoft CodePPC El Roubio The Inquirer FR TechNet ASP-magazine Wygwam MVP