Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
923 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Questions sur structure d'images 24 bits

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Questions sur structure d'images 24 bits

n°326827
*LighTninG​*
Posté le 08-03-2003 à 22:11:13  profilanswer
 

Salut !
 
Ce serait sympa si vous pouviez m'éclairer sur ces quelques points:
 
Quand une image utilise 3 plans de couleurs, comment sont ils agencés dans le fichier? Et dans quel ordre?
 
est ce que ca fonctionne comme ca:
 
1ere ligne de pixel -> composante r
1ere ligne de pixel -> composante g
1ere ligne de pixel -> composante b
 
2eme ligne etc...
 
Est ce qu'une image 24 bits peut n'utiliser qu'un seul plan de couleur? et dans ce cas comment ca se présente dans le fichier ?
Est ce comme ceci par exemple:
12 15 128   35 48 89 ...
---------   --------
R  G  B     R  G  B
1er pixel   2e pixel
 
Et enfin (en rapport avec la 2e question) est on obligé d'utiliser 3 plans de couleurs pour du 24 bits en jpeg ?
 
Si je vous pose ces questions c'est paske je dois faire de la compression jpeg à partir de bmp avec allegro et j'utilise les fonctions de celui ci pour me faciliter la manipulation des bitmaps. Quand ca me charge un bitmap en mémoire, on peut accéder directment aux pixels mais il n'utilise qu'un seul plan de couleur et les composantes sont dans le desordre c a d bgr...merci d'avance pour vos réponses.

mood
Publicité
Posté le 08-03-2003 à 22:11:13  profilanswer
 

n°326831
mrbebert
Posté le 08-03-2003 à 22:22:58  profilanswer
 

En BMP, ce n'est pas ca. Tu as 3 octets pour chaque pixel, tu as donc dans le ficher : RGBRGBRGBRGBRGB.... (ou BGRBGRBGR... je sais jamais :D ).
En jpeg, je crois pas que ca soit codé en RGB :heink:


Message édité par mrbebert le 08-03-2003 à 22:23:26
n°326846
deathsharp
Posté le 08-03-2003 à 22:31:11  profilanswer
 

en BMP c'est BGR et de bas en haut si je me goure pas


---------------
What butter and whiskey won't cure, there is no cure for.
n°326853
*LighTninG​*
Posté le 08-03-2003 à 22:33:28  profilanswer
 

Merci Bebert et deathsharp:)
Mais donc en jpeg ca marcherais comme ca? (Enfin bon bien sur ce sont des matrices dct normalement mais ca revient au meme)
 
1ere ligne de pixel -> composante r  
1ere ligne de pixel -> composante g  
1ere ligne de pixel -> composante b  
 
2eme ligne etc...  
 
 :??:


Message édité par *LighTninG* le 08-03-2003 à 22:34:06
n°326857
mrbebert
Posté le 08-03-2003 à 22:33:55  profilanswer
 

Oui, ligne par ligne, en commencant par la ligne du haut :)  
Et chaque ligne doit être complétée jusqu'à un multiple de 32 bits (par exemple, pour des lignes de 11 pixels, il y aura 33 octets pour les pixels, plus 3 octets pour compléter jusqu'à 36 octets).
 
En jpeg, tout ce que je sais, c'est que c'est complexe :D  
Déja, je crois qu'il ne traite pas ligne par ligne, mais il suit un chemin sinueux dans l'image :pt1cable:  
Ensuite, ce ne sont pas des pixels qui sont pris en compte, mais des blocs de pixels (taille :??: )


Message édité par mrbebert le 08-03-2003 à 22:37:33
n°326860
*LighTninG​*
Posté le 08-03-2003 à 22:36:58  profilanswer
 

c'est pas plutot un multiple de 8 bits  :??:

n°326861
mrbebert
Posté le 08-03-2003 à 22:38:31  profilanswer
 

Je crois pas. Il me semble que chaque ligne doit commencer à un multiple de 4 octets :)

n°326892
ITM
Avatar peint à la main
Posté le 08-03-2003 à 23:01:00  profilanswer
 

Tu n'as pas besoin de t'embéter avec la structure d'un BMP.
Tu pourrais utiliser les fonctions 'getb', 'getg', 'getr' directement fournies par ALLegro.
Genre

Code :
  1. couleur.composante_b = getb(getpixel(mon_bitmap, mon_x, mon_y));


Message édité par ITM le 08-03-2003 à 23:01:18

---------------
iteme.free.fr | Mon feedback
n°327111
LeGreg
Posté le 09-03-2003 à 01:48:57  profilanswer
 

En jpg, l'image est d'abord convertie en  
luminosite chrominance  
Ensuite chaque image est decomposee en bloc
de 8 sur 8, sur chaque bloc de l'image on  
applique une DCT, on quantifie l'image resultante
selon une matrice de quantification bien
definie pour chaque canaux (de la qualite de cette
matrice de quantification dependra la qualite
finale du jpeg decompresse).
Ensuite on applique un runlength encoding sur
les bits resultants mis bout a bout (et on a une grande
chance que beaucoup de ces bits soient a zero en parcourant chaque bloc en zig zag)
Pour enfin appliquer une compression type huffman (conservative) sur le fichier resultant.
 
LeGreg


Message édité par LeGreg le 09-03-2003 à 01:49:31

---------------
voxel terrain render engine | animation mentor
n°327391
*LighTninG​*
Posté le 09-03-2003 à 15:40:58  profilanswer
 

Merci tout le monde pour vos reponses :)
 
Dis moi le greg, est ce que tu sais comment on fait pour la rle sur la suite de zero?
Paske j'ai déjà codé le parcours zig zag mais apres que dois t-on ecrire dans le fichier pour indiquer qu'il y a une compression d'une suite de 0?
Est ce qu'il ya un caractère spécial qui l'identifie?
Par exemple: 'carac special' 'nb_zero' ??


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Questions sur structure d'images 24 bits

 

Sujets relatifs
questions à propos des moderateurs de ce forum{log4j} logger en BD, dans une table ayant un structure donnée
Visual c++ 6.0 questions ?ajouter des images dans un menu deroulant
[PHP/MYSQL] Charge sur serveur ? + diverses questions...Gros doute sur une structure...
Mes questions en C++[PHP, MySQL] votre avis concernant la gestion des images
PHP : fction mail HTML et ImagesPHP GD, melanger 2 IMAGES, un PNG semi transparent et un PNG "normal"
Plus de sujets relatifs à : Questions sur structure d'images 24 bits


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR