Négatif d'une image en c
wqazerty
-
wqazerty -
wqazerty -
Bonjour,
j'essaye de programmer le negatif d'une image en c et je comprends sa marche pas. En effet quand j'applique 2 fois le programme je ne retrouve pas l'image originale.
voici le code (les 54 premiers octets sont des entetes donc on s'en fou et apres ce sont les couleurs code de gauche à droite et haut en bas)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main (int argc, char * argv[]) {
FILE *infile;
infile=fopen(argv[1],"r+");
int i;
i=0;
int p=1;
char j[1];
for(i=0;i<54;i++) {
fread(j,1,1,infile);
}
while (p!=0) {
p=fread(j,sizeof(char),1,infile);
*j=-*j;
fwrite(j,sizeof(char),1,infile);
}
fclose(infile);
return 0;
}
j'essaye de programmer le negatif d'une image en c et je comprends sa marche pas. En effet quand j'applique 2 fois le programme je ne retrouve pas l'image originale.
voici le code (les 54 premiers octets sont des entetes donc on s'en fou et apres ce sont les couleurs code de gauche à droite et haut en bas)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main (int argc, char * argv[]) {
FILE *infile;
infile=fopen(argv[1],"r+");
int i;
i=0;
int p=1;
char j[1];
for(i=0;i<54;i++) {
fread(j,1,1,infile);
}
while (p!=0) {
p=fread(j,sizeof(char),1,infile);
*j=-*j;
fwrite(j,sizeof(char),1,infile);
}
fclose(infile);
return 0;
}
A voir également:
- Après avoir fait quelques recherches sur le "négatif d'une image", écrivez un programme qui donne le négatif d'une image.
- Image iso - Guide
- Légender une image - Guide
- Comment rechercher une image sur google - Guide
- Negatif telephonique - Guide
- Acronis true image - Télécharger - Sauvegarde
8 réponses
Salut;
Et quand tu fais un printf, ca donne quoi comme valeurs pour j?
Pourquoi déclarer char j[1] plutot que char j...? tu enlèverai les pointeur que tu utilises...
A+
Et quand tu fais un printf, ca donne quoi comme valeurs pour j?
Pourquoi déclarer char j[1] plutot que char j...? tu enlèverai les pointeur que tu utilises...
A+
j doit obligatoirement être un pointeur pour pouvoir utiliser fread et fwrite.
quand je fais un print f *j sont des valeurs comprises en 127 et -127.
quand je fais un print f *j sont des valeurs comprises en 127 et -127.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
à mon avis, ça viens de l'algorithme.
Pour moi du négatif, c'est :
Jmax-j
donc souvent c'est 255-j, avec des valeurs comprises entre 0 (noir) et 255 (blanc)
la valeurs en binaire sont peut être des entiers non signé, et si tu utilise le complément à 2 pour écrire le résultat...
Conseil, utilise unsigned char à la place de char et 255-j plutôt que j=-j.
Pour moi du négatif, c'est :
Jmax-j
donc souvent c'est 255-j, avec des valeurs comprises entre 0 (noir) et 255 (blanc)
la valeurs en binaire sont peut être des entiers non signé, et si tu utilise le complément à 2 pour écrire le résultat...
Conseil, utilise unsigned char à la place de char et 255-j plutôt que j=-j.