Bonjour ,
Alors Yan, ce que j'ai compris c'est puisque j'ai une image en niveau de gris les composantes rgb sont toutes égales mais j'ai les valeurs de mes pixels différentes de 255, à mon avis je dois avoir ceci:
value = qrgba(255,255,255,valeur du pixel à lire dans mon fichier) ;
si c'est pas le cas je pense alors que la valeur du pixel contenu dans mon fichier doit etre :
value = qrgba(0,0,0,valeur du pixel à lire dans mon fichier) ;
Alors je reexplique, j'ai mon fichier image comme je l'ai presenté des le debut :là j'ai lus l'en-tete de mon fichier et j'ai recupéré le nombre de lignes et de colonnes ensuite la taille des commentaires, ce qui me montre par où commence les pixels de l'image et je dois lire les pixels à partir de :
file.seek(Taille des commentaires) ce qui équivaut à file.seek(437) ;
ensuite je mets les pixels dans le QImage en utilisant la méthode setpixel;
cela fait aujourd'hui 4jours je suis dessus, mais je vais pas baisser les bras avec votre aide et je vais bien comprendre si vous m'aidez, alors voici mon bout de code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| QImage uneImage(rows, columns, QImage::Format_ARGB32) ;
uint valeur_pixel ;
for (int k = 0; k < (rows * columns * 4) ; k = k + 6000)
{
file.seek((128 + CommentLength) + k) ;// Je lis le fichier à cette position que je vais incrementer de la taille des donnes lues
//cad de la valeur de rows*taille d'un pixel:4*1500 = 6000
for (int n = 0; n < rows; n++)
{
QDataStream in(&file) ;// Je lis le fichier
for (int m = 0; m < columns; m++)
{
in >> valeur_pixel ;// j'ecrase les valeurs lues apres avoir remplit mon QImage a chaque tour de boucle.
uneImage.setPixel(n,m,valeur_pixel) ;//je remplis QImage avec la valeur_pixel
ui->ZoneImage->setPixmap(QPixmap::fromImage(uneImage)); |
Le grand probleme c'est de reussir a lire mon fichier qui fait 1200 * 1300 et de recuperer les pixels ??
Partager