Comment enregistrer une image entre les coordonnées (x1,y1) et (x2,y2) en format PIC?
pour tt l'écran je c qu'il faut faire:
char img [2004];
FILE *fp;
BitmapGet (&(SCR_RECT){{0,0,159,99}}, img);
fp = fopen ("nomdefichier", "wb")
fwrite (img,2004,1,fp);
fputc (PIC_TAG, fp);
fclose (fp);
mais pour une partie???
FAQ de TiGCC, y'a exactement ce problement de traité, fait une recherche de SYM_ENTRY .. ca devrait coller (c pas sur ..)
>nEUrOne:
N'importe quoi, il n'y a pas du tout ça dans la FAQ. (Il y a seulement comment lire un fichier PIC, pas comment en écrire un!)
>rdn_spe:
Tu peux réutiliser presque tout ton code:
char img [hauteur*(largeur+7)/8+4]; /* la division est en entiers, donc ce sera l'équivalent de intDiv(largeur+7,8) en TI-BASIC */
FILE *fp;
BitmapGet (&(SCR_RECT){{xmin,ymin,xmin+largeur-1,ymin+hauteur-1}}, img);
fp = fopen ("nomdefichier", "wb")
fwrite (img,hauteur*(largeur+7)/8+4,1,fp);
fputc (PIC_TAG, fp);
fclose (fp);
[edit]Edité par Kevin Kofler le 08-11-2001 à 22:15:01[/edit]
Avec tes x1, x2, y1 et y2:
char img [(y2-y1+1)*((x2-x1)/8+1)+4]; /* j'ai simplifié (y2-y1+1)*(x2-x1+1+7)/8+4 */
FILE *fp;
BitmapGet (&(SCR_RECT){{x1,y1,x2,y2}}, img);
fp = fopen ("nomdefichier", "wb")
fwrite (img,(y2-y1+1)*((x2-x1)/8+1)+4,1,fp);
fputc (PIC_TAG, fp);
fclose (fp);
c exactement ce que je voulais, ça marche parfaitement!
merci de ton aide Kevin
j'ai repris ton code avec hauteur et largeur c bien plus simple en fait
[edit]Edité par rdn_spe le 08-11-2001 à 22:34:47[/edit]