High-Tech
Santé-Médecine
Droit-Finances
CodeS-SourceS
Inscription
Plan
Connexion
Rechercher un code, un tuto, une réponse
Accueil
Forum
Tutoriels
Codes Sources
Snippets
Top membres
Tous les langages
Delphi / Pascal
Java
Python
SQL
RegEx
Flash
ASM
IRC
Graphisme
PDA
ColdFusion
Foxpro
Flex
Visual Basic / VB.NET
Forum
Tutoriels
Codes Sources
Snippets
Top membres
PHP
Forum
Tutoriels
Codes Sources
Snippets
Top membres
C/C++/C++.NET
Forum
Tutoriels
Codes Sources
Snippets
Top membres
Javascript
Forum
Tutoriels
Codes Sources
Snippets
Top membres
C#/.NET
Forum
Tutoriels
Codes Sources
Snippets
Top membres
ASP/ASP.NET
Forum
Tutoriels
Codes Sources
Snippets
Top membres
Accueil
Connexion
Déposer un code
Code
Recherche
Haut
Forum
Commentaires sur une source
Sujet Précédent
Sujet Suivant
LIBPNG VALIDER UN FICHIER PNG
vecchio56
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
22 août 2010
- 23 oct. 2006 à 07:32
vecchio56
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
22 août 2010
-
23 oct. 2006 à 18:10
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
https://codes-sources.commentcamarche.net/source/40032-libpng-valider-un-fichier-png
vecchio56
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
22 août 2010
14
23 oct. 2006 à 18:10
Problème de fclose toujours présent, car tu fais un return sauvage si fread échoue
xtremejames183
Messages postés
32
Date d'inscription
vendredi 26 mai 2006
Statut
Membre
Dernière intervention
14 avril 2009
23 oct. 2006 à 17:44
Le choix est arbitraire on peut verifier autant de bit qu'on veut , pour le fclose est une petite faute que j'ai corriger
cs_max12
Messages postés
1491
Date d'inscription
dimanche 19 novembre 2000
Statut
Modérateur
Dernière intervention
7 juillet 2014
23 oct. 2006 à 15:26
Cette source ne pourra malheureusement pas rester pour les raisons énuméré par V56.
(Laisse le temps de lire ce message)
vecchio56
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
22 août 2010
14
23 oct. 2006 à 12:30
Notez le fclose(fp); qui n'a aucune chance d'être exécuté puisqu'il se trouve après le return
vecchio56
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
22 août 2010
14
23 oct. 2006 à 07:32
Si je comprends bien, tu ne fais que vérifier que les 8 premiers bits correspondent à une signature
Pas besoin d'une libpng pour ca:
typedef unsigned char png_byte;
#define png_memcmp memcmp
int PNGAPI
png_sig_cmp(png_bytep sig, png_size_t start, png_size_t num_to_check)
{
png_byte png_signature[8] = {137, 80, 78, 71, 13, 10, 26, 10};
if (num_to_check > 8)
num_to_check = 8;
else if (num_to_check < 1)
return (0);
if (start > 7)
return (0);
if (start + num_to_check > 8)
num_to_check = 8 - start;
return ((int)(png_memcmp(&sig[start], &png_signature[start], num_to_check)));
}
Un petit peu léger ton code...
Votre réponse
Discussions similaires
afficher une image png
ththththth
-
27 févr. 2007 à 11:09
ip2x
-
27 janv. 2009 à 11:51
Resize d'un PNG transparent
Nico8583
-
11 mai 2014 à 01:25
Cirec
-
31 mai 2014 à 14:27
LIBPNG et ressource
cs_bbear
-
24 mai 2006 à 22:19
bbear
-
24 mai 2006 à 23:09
Conversion image [jpg, gif ou png]
grand_jeanluc
-
18 mai 2005 à 19:42
grand_jeanluc
-
24 mai 2005 à 15:29
logiciel pour lire un fichier .class
texas77
-
13 mai 2006 à 20:33
scaryman
-
13 mai 2006 à 21:29
Rejoignez-nous
A voir également
Fichier .ini
Convertir tiff en png
Ouvrir un fichier java
Lire informations fichier class dans un programme java
Libpng
23 oct. 2006 à 18:10
23 oct. 2006 à 17:44
23 oct. 2006 à 15:26
(Laisse le temps de lire ce message)
23 oct. 2006 à 12:30
23 oct. 2006 à 07:32
Pas besoin d'une libpng pour ca:
typedef unsigned char png_byte;
#define png_memcmp memcmp
int PNGAPI
png_sig_cmp(png_bytep sig, png_size_t start, png_size_t num_to_check)
{
png_byte png_signature[8] = {137, 80, 78, 71, 13, 10, 26, 10};
if (num_to_check > 8)
num_to_check = 8;
else if (num_to_check < 1)
return (0);
if (start > 7)
return (0);
if (start + num_to_check > 8)
num_to_check = 8 - start;
return ((int)(png_memcmp(&sig[start], &png_signature[start], num_to_check)));
}
Un petit peu léger ton code...