none
Ouvrir une image .TIF dans une fenêtre Internet Explorer RRS feed

  • Question

  • Bonjour à tous,

     

    je souhaiterais savoir s'il est possible d'ouvrir une image .TIF dans une fenêtre d'Internet Explorer de mon application web (c#, framework .net v2) svp ?

    Avec les "contraintes" suivantes:

    - pas de droit d'admin nécessaire (utilisateur standard)

    - pas de déformation dûe à la résolution. Je m'explique: le tif peut avoir une résolution de 200dpi x 100dpi par exemple. Lorsqu'on ouvre le Tif avec Microsoft Document Imaging (application par défaut pour les .TIF), l'affichage du TIF est correcte, c.a.d qu'elle n'est pas applatie. Je souhaiterais reproduire le même "comportement" mais en ouvrant le .TIF dans une fenêtre IE.

     

    L'idéal (si la solution existe) est d'avoir un exemple de code.

     

    Merci beaucoup pour votre aide.

       

     

     

    jeudi 17 janvier 2008 19:11

Toutes les réponses

  • Bonjour,

    IE ne permet que d'afficher les images dans les formats spécifiés par le W3C pour le HTML c'est à dire : jpeg, gif et png. Il existe par contre peut être des ActiveX permettant d'afficher d'autres formats.

     

    Guillaume

    vendredi 18 janvier 2008 09:16
  • Atalasoft a une bibliothèque super puissante pour gérer ça.

     

    Alternativement tu peux développer un Handler pour gérer les requêtes vers les .tiff en renvoyant au navigateur une image jpeg construite dynamiquement à la bonne taille. C'est ce que fait, entre autres nombreuses fonctions, la librairie dotImage d'Atalasoft, mais que tu peux aussi faire toi-même si tu ne peux ou ne veux pas acheter de produit tiers.

     

    Tu peux par exemple t'inspirer de ce tuto qui montre comment faire un handler pour renvoyer des miniatures des images : http://humann.developpez.com/httphandler/

     

    Cordialement,

    Damien

    vendredi 18 janvier 2008 09:25
  •  

    Bonjour Guillaume,

     

    c bien ce que je pensais aussi.

    merci pour ton aide.

    samedi 19 janvier 2008 04:27
  • Bonjour Damien.

     

    je vais regarder.

    merci beaucoup.

     

    samedi 19 janvier 2008 04:28
  • Re bonjour,

     

    une autre question à ce sujet: savez-s'il est possible de lancer l'impression du TIFF sans que le viewer tiff (Document imaging par exemple) ne se lance svp ? 

    dimanche 20 janvier 2008 06:42
  • Bonjour,

    Concernant l'impression des TIFF, je ne sais pas s'il est possible de ne pas afficher le viewer TIFF.

    Par contre je voulais revenir sur l'idée de Damien qui est très bonne. Je vous laisse un exemple de code ci dessous :

     

    Extrait de code

    public class ImageHandler : IHttpHandler

    {

    #region Constructors

     

    public TiffImageHandler()

    {

    }

     

    #endregion

     

    #region IHttpHandler Members

     

    public bool IsReusable

    {

    get { return true; }

    }

     

    public void ProcessRequest(HttpContext context)

    {

    string fileName = Path.GetFileNameWithoutExtension(context.Request.Path);

    byte[] data = this.GetData(fileName);

     

    context.Response.Clear();

    context.Response.Buffer = true;

     

    // mettre le ContentType et le filename en fonction des données

    context.Response.ContentType = "image/jpeg";

    context.Response.AddHeader("Content-Disposition", string.Format("attachment; filename={0}.jpeg", fileName));

     

    context.Response.ContentEncoding = System.Text.Encoding.Default;

    context.Response.Charset = string.Empty;

     

    context.Response.BinaryWrite(data);

    context.Response.Flush();

    }

     

    private byte[] GetData(string fileName)

    {

    using (Image img = Image.FromFile(HttpContext.Current.Server.MapPath(fileName) + "tif"))

    {

    using (MemoryStream ms = new MemoryStream())

    {

    img.Save(ms, ImageFormat.Jpeg);

    ms.Position = 0;

     

    byte[] data = new byte[ms.Length];

    ms.Read(data, 0, data.Length);

     

    return data;

    }

    }

    }

     

    #endregion

    }

     

     

    Dans le fichier web.config

     

    Extrait de code

    <httpHandlers>

    <add verb="*" path="*.tif" type="TiffImageHandler"/>

    </httpHandlers>

     

     

    Si vous utilisez IIS, il faut aussi déclarer l'extension .tif dans Application Configuration/Mappings et la faire utiliser le même données que pour .aspx

     

    Guillaume

    dimanche 20 janvier 2008 19:54
  • Merci Guillaume.

    je vais regarder.

     

    De tte façon, je vais essayer de vous tenir au courant de la suite de ce sujet.

    mardi 29 janvier 2008 10:28