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

C++Builder Discussion :

ouvrir une image jpeg


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 36
    Par défaut ouvrir une image jpeg
    slt je voudrais lire une image jpeg ,pour une image bmp j'ai fait comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if (OpenPictureDialog1->Execute())
      {
     
        Image1->Picture->LoadFromFile(OpenPictureDialog1->FileName);
        Edit4->Text=IntToStr(Image1->Height);
        Edit5->Text=IntToStr(Image1->Width);
      }
    mais pour une image jpeg je ne sais pas comment la lire et avoir sa matrice

  2. #2
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par défaut
    Salut regarde du côté du composant TJPEG.

  3. #3
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par défaut
    J'ai touver une info pertinente pour toi:
    http://www.developpez.net/forums/showthread.php?t=11241

  4. #4
    Membre émérite
    Avatar de bandit boy
    Profil pro
    Inscrit en
    Février 2006
    Messages
    916
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 916
    Par défaut
    Salut,
    Voilà un exemple qui te permettra d'ouvrir les formats d'images les plus utilisés (BMP,ICO,JPEG) en dynamique.
    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
     
        if(OpenPictureDialog1->Execute())
        {
            if(ExtractFileExt(OpenPictureDialog1->FileName).LowerCase() == ".bmp")
            {//bitmap
                Image1->Picture->Bitmap->LoadFromFile(OpenPictureDialog1->FileName);
            }
            else if(ExtractFileExt(OpenPictureDialog1->FileName).LowerCase() == ".ico")
            {//bitmap
                Image1->Picture->Icon->LoadFromFile(OpenPictureDialog1->FileName);
            }
            else if(ExtractFileExt(OpenPictureDialog1->FileName).LowerCase() == ".jpg" || ExtractFileExt(OpenPictureDialog1->FileName).LowerCase() == ".jpeg")
            {
                TJPEGImage *jpeg = new TJPEGImage();
                jpeg->LoadFromFile(OpenPictureDialog1->FileName);
                Image1->Picture->Assign(jpeg);
                delete jpeg;
            }
        }

  5. #5
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par défaut
    Tu ne devrais pas faire un ExtractFileExt & un LowerCase à chaque fois dans ton if. Tu dois le faire une fois et mettre le résultats dans une variable locale.
    Imagine que ton image est un fichier .jpeg, alors il aura fait 4 fois les opérations ExtractFileExt & LowerCase. Pauvre petit CPU, il exécute des comandes inutilement C'est certain que de nos jours avec les processeurs ultra rapide dans nos machines, qu'il n'y a pas de différences notoires.

    C'est une recommandation de Société Protectrice des Processeurs.

    Pensons au réchauffement de la planète, optimisons notre code

  6. #6
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 36
    Par défaut
    merçi pour votre aide ,je vais esseyer vos propositions.

  7. #7
    Membre émérite
    Avatar de bandit boy
    Profil pro
    Inscrit en
    Février 2006
    Messages
    916
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 916
    Par défaut
    Citation Envoyé par Crayon
    Tu ne devrais pas faire un ExtractFileExt & un LowerCase à chaque fois dans ton if. Tu dois le faire une fois et mettre le résultats dans une variable locale.
    Imagine que ton image est un fichier .jpeg, alors il aura fait 4 fois les opérations ExtractFileExt & LowerCase. Pauvre petit CPU, il exécute des comandes inutilement C'est certain que de nos jours avec les processeurs ultra rapide dans nos machines, qu'il n'y a pas de différences notoires.

    C'est une recommandation de Société Protectrice des Processeurs.

    Pensons au réchauffement de la planète, optimisons notre code
    Ne t'inquiètes pas pour le processeurs, ce code est compilé et le code compilé est souvent différent du code saisie. Les options de compilations prennent en compte ces optimisations (temps, taille ...).
    En résumé dans ce code le résultat de l'opération ExtractFileExt & LowerCase est mis dans une variable temporaire et le test est fait par rapport à cette variable. Exactement comme ce que tu fais, le compilateur recherche même les mêmes conditions dans des fonctions différentes pour optimiser aux maximum la taille du fichier (et ainsi pointer sur 1 condition).

    Si tu fais un test pour voir le temps d'exécution entre ta fonction et la mienne, il ne doit pas y avoir de différence.

    Sinon, le problème est-il résolu?

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

Discussions similaires

  1. Récupérer une image JPEG à partir d'une vidéo
    Par kurul1 dans le forum C++Builder
    Réponses: 8
    Dernier message: 09/08/2006, 10h51
  2. Rogner une image jpeg ou bmp
    Par Valeyre dans le forum Langage
    Réponses: 10
    Dernier message: 18/10/2005, 11h01
  3. [32 bits] Redimensionner une image JPEG/GIF/PNG...
    Par CR_Gio dans le forum x86 32-bits / 64-bits
    Réponses: 2
    Dernier message: 04/10/2005, 00h57
  4. Copier une image (jpeg) dans le presse papier
    Par benj63 dans le forum C++Builder
    Réponses: 2
    Dernier message: 29/07/2002, 14h51
  5. comment réduire une image jpeg (taille x*y)
    Par don-diego dans le forum C
    Réponses: 4
    Dernier message: 14/07/2002, 20h06

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