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
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
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.
@++
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
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
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;
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!!!)
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;
A+
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.
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,
Elles est exacte pour le code montré, mais c'est facilement outrepassable avec une boucle sur la taille.Envoyé par Eric Sigoillot
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager