IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Taille image en pixel


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté Avatar de cedd70
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Mars 2012
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2012
    Messages : 154
    Par défaut Taille image en pixel
    Bonjour,

    Je cherche une fonction pour connaitre la taille d'une image BMP.
    j'ai deja écris ça qui marche parfois .. ( pour les petites image ça fonctionne pas)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
     
    int* x_y(char* lien)
    {
    	int ligne=0;
    	int caractere = 0;
    	int a = 0;
    	int * x_y;
    	x_y = (int *) malloc(sizeof(int)*(8));
    	int * X;
    	X = (int *) malloc(sizeof(int)*(2));
    	FILE* source = NULL;
    	source = fopen(lien, "rb");
    	if(source != NULL)
    	{
    		while  (caractere != EOF)
    		{
    			caractere = fgetc(source);
    			if (ligne >= 18 && ligne <= 21)
    			{
    				x_y [a] = caractere;
    				a++;
    			}
    			else if (ligne >= 22 && ligne <= 25)
    			{
    				x_y [a] = caractere;
    				a++;
    			}
    			ligne ++;
     
    		}
    	}
    	fclose(source);	
    	X[0]=x_y [0]+(x_y [1])*256+(x_y [2])*65536;//X
    	X[1]=x_y [4]+(x_y [5])*256+(x_y [6])*65536;//Y
    	return X;
    }
    Je sais pu se que j'ai écris ça fait lgt. Sans utiliser de libary

    Merci

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Il y a au moins 4 problèmes dans ton code :
    1. la longueur et la largeur sont représentés par des entiers 32 bits. Pourquoi les lire octet par octet ? Même pour un soucis de endian, il me semble plus pratique de lire directement 4 octets à placer directement dans un tableau de char pour un soucis d'endian, ou alors directement dans un int si l'OS range les octets dans le même sens que le format BMP et que tu te moques de la compatibilité,
    2. tu lis les données à une place fixe dans le fichier, sans tenir compte du format de l'entête de fichier et de l'entête des données,
    3. tu ne regardes que 3 octets pour la taille au lieu de 4. Ok, dans l'écrasante majorité des cas, une taille dépassant 16 millions de pixels n'arrive pas, mais autant être propre et gérer correctement le format,
    4. faire un malloc de 8 octets pour stocker consécutivement deux int, c'est un peu abusé.... Il vaudrait mieux déclarer un tableau de char de 4 éléments sur la stack : (codeinline]char tab_taille[ 4 ];[\codeinline] et deux int : un pour la largeur et l'autre pour la hauteur.


    Le format de fichier BMP se trouve en quelques clics, un peu de persévérance
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Membre expérimenté Avatar de cedd70
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Mars 2012
    Messages
    154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mars 2012
    Messages : 154
    Par défaut
    Merci
    je prend ca en note pour améliorer mon programme merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Taille image en cm à afficher en pixels
    Par Le Marlou dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 26/07/2009, 17h50
  2. Taille image d'accueil
    Par JeanMi66 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 19/09/2005, 11h27
  3. Taille d'un pixel
    Par bennnun dans le forum OpenGL
    Réponses: 3
    Dernier message: 19/05/2005, 02h23
  4. Modifier une image par pixels
    Par mateo.14 dans le forum MFC
    Réponses: 10
    Dernier message: 21/01/2005, 15h09
  5. [Image]Vérifier taille image lors d'upload FTP
    Par MiJack dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 10/09/2004, 01h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo