begin process at 2012 05 28 02:32:20
  Trouver un code source :
 
dans
 
Accueil > Forum > 

ASP.NET

 > 

Divers

 > 

Autre

 > 

Miniatures d'img (bisi-bis), Nurgle si T là !


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Miniatures d'img (bisi-bis), Nurgle si T là !

jeudi 9 novembre 2006 à 10:51:23 | Miniatures d'img (bisi-bis), Nurgle si T là !

yous

Je souhaite gérer des miniatures d'images pour optmiser les temps de téléchargement. Je travaille en .Net 1.1.

Nurgle m'est déjà venu en aide en me proposant un lien qui consiste à créer une classe qui implémente l'interface IHttpHandler.

En suivant scrupuleusement cet exemple :
1) je crée la classe qui implémente l'interface IHttpHandler, comme suit :

public class ImageHandler : IHttpHandler
{
public ImageHandler()
{}

#region

IHttpHandler Members

public bool IsReusable
{
get { return true ; }
}

public void ProcessRequest(HttpContext context)
{
//Récupère le chemin sur le disque
string chemin = context.Server.MapPath("/societes_photos/");
//Concaténation du path au nom de l'image fournie par la query string
string fichierImage = string .Concat(chemin, context.Request.QueryString["img"]);
//Est-ce que le fichier existe ?
if (System.IO.File.Exists(fichierImage)== false )
fichierImage =
string .Concat(chemin, "pasdimg");
//Chargement de l'image
System.Drawing.Image laMini = System.Drawing.Image.FromFile(fichierImage);
//Réalisation de la miniature en 58x40
laMini = laMini.GetThumbnailImage(58,40, null , new IntPtr());
//Envoi de l'image au client
laMini.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
//Libérer les ressources
laMini.Dispose();
}

#endregion

}

2) Ensuite, je rajoute l'Handler dans le Web.config, comme suit :

<

httpHandlers>
<addverb="*"  path="Image.axd"  type="ImageHandler"/>
</
httpHandlers>

3) Enfin dans ma Page aspx, je fais bien sûr le lien avec la miniature, du style :
<img src="Image.axd?img=uneImage.jpg" />

Le résultat de tout ça, C quoi !?!?
A la génération, pas de pb, à l'exécution par contre ça donne ce put1 de message :

Message d'erreur de l'analyseur: Impossible de charger le type ImageHandler à partir de l'assembly System.Web, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a.

Erreur source:

Ligne 67 :   </httpHandlers>-->
Ligne 68 : <httpHandlers>
Ligne 69 :    <add verb="*" 
Ligne 70 :         path="Image.axd" 
Ligne 71 :         type="ImageHandler" />

Si Quelqu'un peut m'aider parce que là franchement, ça commence à me courir sur le haricot et encore le mot est faible, ras la casquette pour rester poli, surtout que je pense que la solution n'est pas loin, Bordel !!!!
jeudi 9 novembre 2006 à 12:51:43 | Re : Miniatures d'img (bisi-bis), Nurgle si T là !

jesusonline

Membre Club Administrateur CodeS-SourceS
Bonjour,

axd ? on utilise plutot l'extension ashx, axd ne fonctionnera pas, meme si dans ton cas le problème est pas la :-)

Tu as deux solutions pour créer un handler : la méthode rapide et pas trés propre et l'autre, la solution rapide consiste à créer un nouvel element dans ton projet web (create new file) de type handler ashx tu n'as pas besoin de le register dans le web.config, l'autre solution est de créer une assembly qui contient une classe implémentant IHttpHandler comme tu l'as fait. Dans ce cas il faut register le handler comme ca :

<add verb="*" path="image.ashx" type="MonNamespace.MaClasse, MonAssembly" />

Si tu as mis ta dll dans le dossier App_Code je me souviens que c'est pénible :) je crois que type doit etre "MonNamespace.MaClasse, App_Code" momNamespace n'etant pas obligatoirement présent.

Dans ton handler attention à la propriété isReusable ...


Cyril - MVS - MCP
jeudi 9 novembre 2006 à 12:57:03 | Re : Miniatures d'img (bisi-bis), Nurgle si T là !

yous

Désolé Jesus, quelque chose n'est pas clair...pour moi !

De quelle dll parles-tu ?
Je dois la générer...comment ?
jeudi 9 novembre 2006 à 14:21:40 | Re : Miniatures d'img (bisi-bis), Nurgle si T là !

jesusonline

Membre Club Administrateur CodeS-SourceS
Ou as tu créer ton handler ?

dans un autre projet de ta solution ? ou dans le dossier App_Code ? il faut obligatoirement que tu mettes ton code dans un de ces 2 dossiers pour qu'asp.net puisse compiler ton handler et ensuite l'utiliser


Cyril - MVS - MCP
jeudi 9 novembre 2006 à 14:28:02 | Re : Miniatures d'img (bisi-bis), Nurgle si T là !

yous

Mon Handler est en fait une classe qui implémente IHttpHandler. Je travaille avec VS 2003 et je ne peux donc pas ajouter d'Handler autrement. Il fait donc bien parti de mon app_code...

publicclassImageHandler : IHttpHandler
{
publicImageHandler()
{}

#region

IHttpHandler Members

publicboolIsReusable
{
get{ returntrue; }
}

publicvoidProcessRequest(HttpContext context)
{
//Récupère le chemin sur le disque
stringchemin = context.Server.MapPath("/societes_photos/");
//Concaténation du path au nom de l'image fournie par la query string
stringfichierImage = string.Concat(chemin, context.Request.QueryString["img"]);
//Est-ce que le fichier existe ?
if(System.IO.File.Exists(fichierImage)==false)
fichierImage =
string.Concat(chemin, "pasdimg");
//Chargement de l'image
System.Drawing.Image laMini = System.Drawing.Image.FromFile(fichierImage);
//Réalisation de la miniature en 58x40
laMini = laMini.GetThumbnailImage(58,40,null, newIntPtr());
//Envoi de l'image au client
laMini.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
//Libérer les ressources
laMini.Dispose();
}

#endregion

}
jeudi 9 novembre 2006 à 14:40:51 | Re : Miniatures d'img (bisi-bis), Nurgle si T là !

jesusonline

Membre Club Administrateur CodeS-SourceS
avec VS2003 il n'y a pas de dossier APP_Code ... Je me souviens plus comment cela fonctionne mais je te conseille grandement de rajouter un nouveau projet genre NomSiteWeb.Web tu créer différents dossier (Namespace) pour mettre au final ta classe dans le namespace

NomSiteWeb.Web.Handlers

puis dans le web.config tu fais type="NomSiteWeb.Web.Handlers.MonHandler, NomSiteWeb.Web" le deuxième argument (NomSiteWeb.Web) est le nom de l'assembly qui est pas défaut dans VS le nom du projet (et aussi le nom de la dll dans .dll)


Cyril - MVS - MCP
vendredi 10 novembre 2006 à 04:31:06 | Re : Miniatures d'img (bisi-bis), Nurgle si T là !

badrbadr

Salut,
Regarde du côté de ma source : http://www.aspfr.com/codes/MANIPULATION-IMAGES-TEMPS-REEL-REDUCTION-COMPRESSION-AGRANDISSEMENT-DESCRIPTIONS_35293.aspx
Elle permet le changement de taille et la compression d'images à la volée.
Ma classe est implémentée comme un handler et un document Word est livré pour expliquer l'usage et l'installation de la classe.

Bonne chance.

[:D] @++


Cette discussion est classée dans : string, system, image, imagehandler, lamini


Répondre à ce message

Sujets en rapport avec ce message

copie de fichiers [ par romain3395 ] Bonjour,Je cherche a uploader des fichiers d'un client vers mon serveur en utilisant la méthode System.IO.File.Copy:try{ System.IO.File.Copy(logo_roug webservice pb d'accès aux fichier se trouvant sur un autre serveur [ par maisonx2000 ] Voila je veux developper un webservice qui me retourne un fichier texte se trouvant sur un autre serveurj'ai tous les droit d'accès. Voici le codeDim Sauvegarde de gif... en gif [ par thigo ] Ma question peut paraitre stupide mais voila:Je dispose d'une image gif, je dois la travailler puis la sauvegarder en format gif. Le problème et que l upload de fichier [ par arnaldo21 ] bonjour je suis débutant en asp.net. j'aimerais faire un upload de fichier image et j'ai pris votre exemple comme modèle mais lorsque je le test, il m Pb modification d'une image a la volée [ par KPTNB ] Bon voila, j'ai un léger souci.Je veux modifier une image dans la méthode Page_Load avec le code suivant : System.Drawing.Image image = System.Drawing ASP.NET : Copie de ressources intégrées. [ par DeathAngel ] Bonjour à toutes et à tous,J'ai un petit soucis de copie de fichier.J'ai un Ascx, qui utilise des images (ressource intégrée).Lors de l'initialisation Récupérer une valeur d'un Control User acsx dans un Label [ par ryckbosch ] Bonjour,Je ne sais pas si j'utilise correctement le passage des variables entre un Control User (Nbre_Sites.ascx) et la page qui l'appelle (Test.aspx) Requete dans base SQL avec des DropDownList pour faire une recherche [ par billmax ] Bonjour,==========MON PROBLEMEje veux faire une selection de tuple de ma base en fonction de critere grace a des DropDownList==========je suis etudian [ASP2] Problème WebControl et affichage dans le Designer [ par smoitry ] Bonjour,J'ai un problème que je n'arrive pas à résoudre depuis 3 jours : j'ai créé un WebControl dont le but est de m'afficher un cadre dans la page c


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,388 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales