Manipulation d'images en temps réel - réduction compression agrandissement et descriptions

Soyez le premier à donner votre avis sur cette source.

Vue 27 632 fois - Téléchargée 2 267 fois

Description

Bonjour,
Il arrive souvent dans les galeries d?images qu?il faille deux versions d?une même image : l?originale et une version réduite pour qu?on puisse charger l?ensemble des images rapidement. La solution qui semble être la plus simple, surtout si on travaille en html seulement, consiste à créer deux dossiers et de mettre dans l?un toutes les images grandeur nature et dans l?autre, les mêmes images, en petites tailles.
Ceci dit, il serait plus judicieux d?économiser l?espace disque dur en transformant l?image originale avant que celle-ci arrive chez le client. On disposera ainsi d?une seule version des images.
Pour y arriver, je vais présenter ici une classe, un handler qui hérite de l?interface IHttpHandler. J?ai réalisé cette classe en vue d?implémenter dans un futur proche une galerie dans mon site web.

Comment l'utiliser?

Supposons une image intitulée cheval.jpg sur notre serveur IIS dans le dossier Images du dossier Gallery de notre dossier wwwroot. On peut y accéder avec 127.0.0.1/Gallery/Images/cheval.jpg
Pour pouvoir profiter des fonctionnalités de ma classe, il faut respecter le prototype suivant :
127.0.0.1/Gallery/Images/cheval.jpg?width=800&height=600&quality=75&textMode=none
où width la largeur de l?image en pixel
height la hauteur de l?image en pixel
quality le taux de compression (100 pour aucune compression, 75 par défaut)
textMode pour l?intégration d?une description de l?image à partir d?un fichier xml
textMode peut prendre les valeur suivantes :
none n?afficher aucune description
text afficher une description en format html
image intégré la description à même l?image

Implémentation dans un serveur IIS :
Dans le zip, j'ai inclus un document word (tutorial.doc) qui montre pas à pas comment implémenter cette classe avec des images

Source / Exemple :


vaut mieux voir le zip,
le code est assez bien commenté

Conclusion :


Vous remarqueriez dans le screenshot qu'il y un titre et une description de l'image
ces derniers sont chargés à partir d'un fichier xml.
ça pourrait interesser ceux qui commence avec xml comme moi parce que c'est très simple comment j'ai fait

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

CireEricCrie
Messages postés
5
Date d'inscription
lundi 17 décembre 2007
Statut
Membre
Dernière intervention
10 janvier 2008
-
Bonjour,
Vu la date de ta contribution je ne sais pas si tu me répondras...
ton morceau de code m'interresse fortement.
Mais lorsque je cherche a me connecter a 127.0.0.1 on me demande un mot de passe que j'ignore.
Par ailleurs, existe t-il une version vb.net de ton code?
cs_badrbadr
Messages postés
475
Date d'inscription
jeudi 19 juin 2003
Statut
Membre
Dernière intervention
3 novembre 2008
-
merci beaucoup pour tes commentaires;
pour les templates xslt, j'ignorais leur existence, je vais donc m'informer et éventuellement poster une mise à jour.
pour l'erreur 404, j'ai omis de verifier l'existence du fichier parce que j'ai demandé à IIS de s'en occuper (j'ai coché vérifier l'existence du fichier)

merci encore
salut
jesusonline
Messages postés
6827
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
17 -
Sympathique :) Les explications sont claire et ca c'est trés bien pour les débutants :p

Par contre dans ton code j'ai quelques petits reproche :)

Dans ta fonction RenderAsHtmlFile, je te conseillerais de ne pas ecrire directement le HTML, si tu veux modifier quelque chose il va falloir recompiler et puis ce n'est pas trés propre. Passe plutot par un fichier de template en xslt. Ce sera beaucoup plus joli :)

Dans RenderImageWithoutModification tu ne vérifies pas la présence ou non du fichier sur le serveur, peut etre que ca va simplement donner une erreur 404, mais je pense qu'il y a un risque d'erreur la

enfin plutot que ca : @"C:\Inetpub\wwwroot\Gallery\imgdesc.xml" ecrit donc server.mappath("imgdesc.xml").

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.