begin process at 2010 09 06 12:56:25
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Fichier / Disque

 > 

[C] Impossible de lire le contenu d'une image png


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

[C] Impossible de lire le contenu d'une image png

vendredi 12 mai 2006 à 03:21:12 | [C] Impossible de lire le contenu d'une image png

JMGR

Bonjour à tous,

j'ai un petit problème :
Je veut transférer une image png d'un client vers un serveur.
Seulement lorsque je tente de lire le contenu du fichier.png avec fread il ne lit que 8 caractères... (soit l'entête du fichier png)
Pourtant le fichier fait 6 ko et quand je veut savoir la taille du fichier avec fseek et ftell il me donne 6000, ce qui est correct.

J'ai tenté l'opération avec les fonctions intégrées à wxWidgets mais avec le même résultat.

Une solution serait d'utiliser la librairie png pour lire le fichier et ne transférer que les valeurs des pixels mais je trouve cela un peu bête puisque le serveur devra de toute facon recréer un fichier png...

Spécifications :
Compilateur - Gcc
IDE - Code::Blocks
OS - Windows XP


Merci d'avance,
Jmgr
vendredi 12 mai 2006 à 09:44:56 | Re : [C] Impossible de lire le contenu d'une image png

BruNews

Administrateur CodeS-SourceS
Regarde le second param de fopen.

ciao...
BruNews, MVP VC++
vendredi 12 mai 2006 à 13:53:32 | Re : [C] Impossible de lire le contenu d'une image png

JMGR

Oui pardon j'ai oublié de préciser que je l'ouvre en mode binaire, donc mon fopen ressemble à ca : fopen("image.png", "rb");
vendredi 12 mai 2006 à 13:56:35 | Re : [C] Impossible de lire le contenu d'une image png

BruNews

Administrateur CodeS-SourceS
ensuite fais un fread dans un buffer.

ciao...
BruNews, MVP VC++
vendredi 12 mai 2006 à 16:36:56 | Re : [C] Impossible de lire le contenu d'une image png

JMGR

Bon je poste mon code ca sera plus simple...

FILE * fp = 0;
fp = fopen("image.png", "rb");
char buffer[10000] = "";
fread(&buffer, 1, 500,fp);
fclose(fp);

Et donc là il ne copie que 8 caractères dans le buffer, alors que le fichier fait 6 ko...
vendredi 12 mai 2006 à 16:38:13 | Re : [C] Impossible de lire le contenu d'une image png

JMGR

Et le fichier de base a été créé avec le même PC dont ca ne peut pas venir de l'indianess du proc.
vendredi 12 mai 2006 à 17:29:25 | Re : [C] Impossible de lire le contenu d'une image png

BruNews

Administrateur CodeS-SourceS
tu es certain que tu n'as que 8 octets ???

ciao...
BruNews, MVP VC++
vendredi 12 mai 2006 à 18:00:35 | Re : [C] Impossible de lire le contenu d'une image png

JMGR

Si je fait strlen(buffer) il me renvoie 8 et si je l'affiche avec printf("%s", buffer) il ne m'affiche que les 8 premiers caractères (octets ?) du fichier.

Peut être que char n'est pas le bon type pour stocker des données binaire ?
vendredi 12 mai 2006 à 18:10:56 | Re : [C] Impossible de lire le contenu d'une image png

BruNews

Administrateur CodeS-SourceS
strlen(), non mais franchement dis moi donc ce que fait strlen, ça te fera un peu réfléchir.

ciao...
BruNews, MVP VC++
vendredi 12 mai 2006 à 18:37:18 | Re : [C] Impossible de lire le contenu d'une image png

nightlord666

Membre Club
IL NE FAUT PAS UTILISER STRLEN ! En effet, strlen te renvoie le nombre d'octets jusqu'à un octet égal à 0. Il suffit qu'il y en ait un dans ton png (ce qui est fort probable), et strlen ne fonctionne pas. Utilise plutôt ceci : #define chDIMARRAY(arr) (sizeof(arr) / sizeof(arr[0])) (Code provenant du bouquin de Jeffrey Richter, appendice A) Ou plus simple(car ce sont des unsigned char): sizeof(arr)

1 2

Cette discussion est classée dans : fichier, lire, image, contenu, png


Répondre à ce message

Sujets en rapport avec ce message

lire le contenu d'un fichier en C++ [ par julien20vt ] Je développe sous visual C++, je voudrais lire le contenu d'un fichier et le recopier dans un autre, par contre il ne faut pas que j'utilise le type lire le contenu d'un fichier tel qu'il est [ par ibti25 ] Bonjour,Je m'arrive pas a afficher le contenu de mon fichier comme il est au niveau d'un terminal.Ce que me fait mon code (cidessous), c'est un affich Image CD [ par Benji8892 ] Salut, j'aurais voulu savoir comment lire un cd du secteur 0 piste 0 au dernier secteur, derniere piste et ainsi mettre tous les octets dans un seul f Lire un fichier texte [ par isirnet ] bonjour comment faire pour parcourir le contenu du disque (c:), selectionner un fichier texte, et recuperer le contenu de ce fichier dans une variable Comment faire pour lire un fichier .txt, et afficher son contenu dans un control CRichEditView [ par isirnet ] format avi [ par ZaRMaS ] Salut a tous, Dans le cadre d un projet developpe en C je voudrai lire le header d un fichier avi. j esperai pouvoir faire comme pour lire un fichier Ouvrie et lire le contenu d'un fichier(débutant inside) [ par psicoblues ] Bonjour, voilà je me lance dans le monde du dévelopement avec pour langage le C.J'ai installé un turbo C sur un MS-DOS 6.2, sur un vieux Pentium.Pour lire un fichier en C dont je ne connait pas l'extension [ par benrad ] Bonjourj'ai un fichier avec une extension .dldje suis en train de bosser sur une dll en CJ'aurais voulu savoir comment je pouvais stocker le contenu d afficher le contenu d'une image.h dans son .exe [ par wargore ] Bonsoir à tous!Je suis à recherche d'une aide précieuse :p qui poura me débloquer dans mon code.Tout d'abord j'ai un code principal qui contient: ---- Affichage d'une image avec SDL.. dans un fichier d'image [ par smasher81 ] Allo!J'ai commencé à regarder la  lib SDL.. et je me suis demander, après avoir fait plusieurs testes sur l'affichage de .bmp si s'était possible de m


Nos sponsors


Sondage...

CalendriCode

Septembre 2010
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
27282930   

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,061 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales