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

Turbo Pascal Discussion :

[TP 7.0] Sauvegarger une image en mode graphique ?


Sujet :

Turbo Pascal

  1. #1
    Membre régulier

    Inscrit en
    Novembre 2005
    Messages
    97
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Novembre 2005
    Messages : 97
    Points : 87
    Points
    87
    Par défaut [TP 7.0] Sauvegarger une image en mode graphique ?
    Salut à tous,
    comment sauvegarger une image avec les dimensions (x1,x2,y1,y2) dans un fichier, en mode graphique, sous turbo pascal 7.0 ?
    Et comment recharger cette image a partir de ce fichier à l'écran ?

    Merci d'avance

  2. #2
    Membre expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Points : 3 369
    Points
    3 369
    Par défaut
    En le faisant à la main !

    Il faut choisir un format de fichier (le tien, ou un format pré-existant), respecter ce format lors de l'enregistrement en prenant la valeur de chaque pixel de la zone concernée avec GetPixel et en l'enregistrant dans le fichier.

    Une fois que c'est fait, il faut relire le fichier, extraire la valeur de chaque pixel et l'inscrire sur l'écran avec PutPixel.

    @++

  3. #3
    Membre régulier

    Inscrit en
    Novembre 2005
    Messages
    97
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Novembre 2005
    Messages : 97
    Points : 87
    Points
    87
    Par défaut
    Merci Eric Sigoillot,
    Moi je préfaire l'écriture avec block de données,et la lecture aussi


    pour sauvegarder une image il faut:
    1-connetre la taille de cette image en mode graphic
    2-allouer un pointeur vers la zone memoire qui contient cette image
    3-sauvegarder le contenu de ce pointeur(c'est l'image elle meme)dans un
    fichier binaire(non typé)

    voila 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
     
     
    var taille:word;p:pointer;F:File;
    begin
    taille:=imagesize(100,100,200,250);{1er étape}
    GetMem(p,taille);
    Getimage(100,100,200,250,p^);{2éme étape}
    assign(F,'c:\image_test');
    rewrite(F);
    blockwrite(F,p^,taille);{3éme étape}
    close(F);
     
    end;
    Pour recharger cette image dans une application en mode graphic a partir d'un fichier donnée:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    var p:pointer;F:File;Taille:word;
    begin
    assign(F,'c:\image_test');
    reset(F,1);
    taille:=imagesize(100,100,200,250);
    GetMem(p,taille);
    blockread(F,p^,taille);
    putimage(300,50,p^);
     
     
    end;
    et voila,On peut aussi sauvegarder une serie d'image dans un fichier(il faut connetre la taille de chaque image et l'emplacement dans le fichier pour extraire les images exactemet!!!)
    A+

  4. #4
    Membre expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Points : 3 369
    Points
    3 369
    Par défaut
    Cette méthode a le désavantage d'être limitée à une taille d'image de 64 Ko maximum. Impossible d'enregistrer toute l'image en une traite par exemple.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    633
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 633
    Points : 711
    Points
    711
    Par défaut
    Bonjour,
    Cette méthode présente au moins un inconvénient (mais de taille [je parle de l'inconvénient])
    Ton code se limite à une image de dimension fixe, et ne peut pas fonctionner s'il faut sauver/charger des images de tailles différentes.

    Pour éviter ça, il faut, au minimum, stocker également la taille de l'image dans le fichier, puis les données de l'image elle-même.

    Et pour cette remarque,
    Citation Envoyé par Eric Sigoillot
    Cette méthode a le désavantage d'être limitée à une taille d'image de 64 Ko maximum. Impossible d'enregistrer toute l'image en une traite par exemple.
    Elles est exacte pour le code montré, mais c'est facilement outrepassable avec une boucle sur la taille.

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

Discussions similaires

  1. sauvegarger une image QRCode en VBA
    Par alain-michel dans le forum VBA Access
    Réponses: 0
    Dernier message: 01/03/2015, 17h10
  2. Réponses: 10
    Dernier message: 29/11/2014, 16h01
  3. Lire une image en mode binaire et l'afficher
    Par regisyves dans le forum ASP.NET
    Réponses: 1
    Dernier message: 05/03/2013, 13h42
  4. [PPT-2007] créer l'apparition d'une image en mode aperçu
    Par mili972 dans le forum Powerpoint
    Réponses: 1
    Dernier message: 06/10/2012, 18h14
  5. Conversion d'une image en mode RGB en une image en niveau de gris
    Par frisou65 dans le forum Calcul scientifique
    Réponses: 9
    Dernier message: 15/02/2012, 17h20

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