Poids d'une image bmp de profondeur 24 bits

Soyez le premier à donner votre avis sur cette source.

Vue 4 355 fois - Téléchargée 176 fois

Description

Le poids d'une image BMP de profondeur 24 bits est très souvent formulée sur le Web selon la formule:
Poids = 3LH où L est la largeur de l'image en pixels, et H sa hauteur en pixels. Cette formule est vraie en première
approximation, mais n'est pas satisfaisante quant à son exactitude.

Sa formulation exacte doit être donnée par la relation: Poids = 3LH + xH + 54

- Le coefficient 3 provient du fait que chaque pixel de l'image est codé sur 3 octets.
- 54 ext le nombre fixe d'octets de l'entête d'une image BMP
- L'inconnue x est déterminée par le nombres d'octets que contient une ligne d'image, nombre systématiquement majoré
ou non à un multiple de 4

exemple: si une image fait 749 pixels de large sur 531 pixels de hauteur, chaque ligne devrait être codée sur
3 x 749 = 2247 octets. Mais 2247 n'est pas divisible par 4. Il suffit alors de déterminer le nombre immédiatement supérieur
à 2247 et multiple de 4 (soit 2248) pour connaitre la valeur x.
x = 2248 - 2247 = 1

Le poids réel de l'image est donc de: (749 x 531 x 3) + (1 x 531) + 54 = 1 193 742 octets

Nota: une même image horizontale n'a pas systématiquement le même poids que l'image verticale.
L'exemple ci-dessus donne 1 193 742 horizontalement pour 1 195 458 verticalement (cela provient du multiple de 4 octets
pour une ligne)

Donc pour que le poids d'une image soit identique horizontalement et verticalement il faut que 3L et 3H soient divisibles par 4.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Cirec
Messages postés
3832
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
17 février 2022
48
16 mars 2012 à 13:46
juste pour info:
le bitmap 32 Bits ne souffre pas de l'alignement sur 4 octets.
sa taille est donc 4LH + 54

pour le PNG on ne peut pas calculer son poids à l'avance ... pourquoi ?

la réponse est simple:
le PGN étant un Bitmap à qui on applique un filtre (parmi 5 disponible ***) et une compression sans pertes de données et ce ligne par ligne.
Chaque ligne peut utiliser un filtre différent et ne tient pas compte de l'alignement.

Rien que ceci rend le calcul du poids impossible mais d'autres données peuvent encore être ajoutées au fichier PNG ... voir le lien ci-dessous pour une information plus complète.
http://www.w3.org/TR/PNG/

***
TFilterType = (ftNONE, ftSUB, ftUP, ftAVERAGE, ftPAETH);
pour plus d'infos sur les filtres:
http://www.w3.org/TR/PNG/#9-table91
dheroux
Messages postés
52
Date d'inscription
vendredi 20 octobre 2006
Statut
Membre
Dernière intervention
11 juin 2014

16 mars 2012 à 12:14
Bonjour,
Je vais y réfléchir.
Bonne journée.
cs_chatou
Messages postés
6
Date d'inscription
mardi 2 mars 2004
Statut
Membre
Dernière intervention
4 janvier 2012

16 mars 2012 à 09:09
pourriez vous avec la même précision décrire le format ,donc le poids, d'une image .bmp de profondeur 32 bits (couche alpha) .Et même d'une image .png ?
Merci
dheroux
Messages postés
52
Date d'inscription
vendredi 20 octobre 2006
Statut
Membre
Dernière intervention
11 juin 2014

10 mars 2012 à 06:32
Bonjour,
OK, merci.
NHenry
Messages postés
14941
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
20 juin 2022
161
10 mars 2012 à 03:28
Bonsoir,

Ta source est, je pense, plus un snippet.
Dans ce cas, il est préférable de faire une fonction qui prend en paramètre 2 entiers (taille X et Y) et retourne la taille.
Ensuite, tu mets cela sur www.codyx.org.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.