IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

probleme de Compression d 'image


Sujet :

ASP.NET

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 39
    Par défaut probleme de Compression d 'image
    Bonsoir tout le monde.

    J'aimerais via le composant FileUpload recuperer l' image puis la compresser.

    pour celà j' ai écris ce code , aucune erreur à la compilation, mais ne se passe...
    quelqu'un aurait une idée ou une alternative

    voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Drawing.Imaging;
    using System.Drawing;
    using System.Text;
     
    public partial class Default3 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
     
     
        }
        private ImageCodecInfo GetEncoder(ImageFormat format)
        {
     
            ImageCodecInfo[] codecs = ImageCodecInfo.GetImageDecoders();
     
            foreach (ImageCodecInfo codec in codecs)
            {
                if (codec.FormatID == format.Guid)
                {
                    return codec;
                }
            }
            return null;
        }
     
     
     
        protected void traitement(object sender, EventArgs e)
        {
     
            Bitmap bmp1 = new Bitmap(FileUpload1.FileContent); //ici FileUpload1 //représente l' id de mon composant
            ImageCodecInfo jgpEncoder = GetEncoder(ImageFormat.Jpeg);
     
            System.Drawing.Imaging.Encoder myEncoder =
                System.Drawing.Imaging.Encoder.Quality;
     
     
            EncoderParameters myEncoderParameters = new EncoderParameters(1);
     
            EncoderParameter myEncoderParameter = new EncoderParameter(myEncoder, 50L);
            myEncoderParameters.Param[0] = myEncoderParameter;
            bmp1.Save(MapPath( "photos_actu/"+FileUpload1.FileName), jgpEncoder, myEncoderParameters);
        }
    }
    cordialement,

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Tu as essayé de mettre un point d'arrêt et d'exécuter pas à pas ?
    où est appelée la méthode traitement ? visiblement c'est un handler d'évènement, est-elle bien reliée à un élément de ta page ?

    A part ça, je ne suis pas sûr du bien-fondé de ce que tu essaies de faire... Quel est le but ? Economiser de la place ? A moins que l'image envoyée soit en .bmp, elle sera déjà compressée, et tu ne gagneras rien en essayant de la compresser plus (surtout avec des paramètres d'encodage réglés pour une qualité optimale). Si c'est une photo, elle est probablement déjà en JPEG. Sinon, c'est probablement un PNG, et tu vas perdre en qualité en compressant en JPEG (PNG utilise une compression sans perte, mais JPEG compresse avec des pertes). Bref, la seule utilité, c'est pour les formats qui ne sont pas déjà compressés...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 39
    Par défaut
    Bonsoir, alors effectivement "traitement" est bien un eventhandler et est bien lié à un bouton ,et je suis un abruti puisque le code marche lol , j' avais fais une erreur de manip, dc desolé d avoir ouvert un topic pour rien,
    mais bon au moins si ça peut servir , le code est opérationnel.

    Sinon ce que j 'essaye de faire, c'est compresser la photo ( format JPEG) qu'un utilisateur enverrait ,avant de l'écrire sur le disque .
    Car j'imagine que le poids d' une photo par exemple 2mo fera aussi 2Mo sur le serveur dc à force ca fait lourd, et puis même ensuite ds les envoies vers le client.
    Alors je raconte peut-être n importe quoi car je ne suis pas informaticien de formation,les méandres de la machine j' y connais rien.
    Quand tu dis que la compression JPEG est destructive , c 'est la profondeur de l' image qui est minimisé et/ou l échantillonnage? D'ailleurs je pense que derrière ce 50L c 'est ce qu'il se passe enfin je crois loool

    En espérant ne pas avoir accumulé de bêtise tout conseil est bon à prendre
    merci pour cette réponse rapide

    cordialement!

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Effectivement, j'avais pas fait gaffe au paramètre 50L. Si j'ai bien compris ça correspond à une compression de 50%, mais la doc est pas très claire sur les paramètres disponibles pour chaque encodeur

    Donc j'ai rien dit, tu vas effectivement réduire la taille de l'image. Mais tu risque de perdre pas mal en qualité... Vu le prix des disques durs aujourd'hui, je pense que c'est dommage de perdre en qualité pour gagner un peu de place, mais c'est à toi de voir selon ton besoin

    Quand tu dis que la compression JPEG est destructive , c 'est la profondeur de l' image qui est minimisé et/ou l échantillonnage?
    Eeeeeeuuuuuuuuuuuuuhhhhhhh....
    Aucune idée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probleme : compression d'image (pgm)
    Par Micks71 dans le forum C
    Réponses: 3
    Dernier message: 05/05/2006, 12h32
  2. [CR.NET] Probleme d'affichage d'image
    Par ahervieux dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 25/06/2005, 14h06
  3. probleme redimensionnement d'une image
    Par meteor4 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 29/11/2004, 13h58
  4. Mkisofs - problème pour créer une image
    Par tomnie dans le forum Applications et environnements graphiques
    Réponses: 4
    Dernier message: 04/08/2004, 11h44
  5. [TP][MULTI-PROBLEME]Comment afficher des images pcx
    Par mikoeur dans le forum Turbo Pascal
    Réponses: 7
    Dernier message: 24/10/2002, 13h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo