2016-04-04 34 views
0

Bitmap görüntülerini dokulara dönüştürmem gerekiyor. Bunun için bitmap'i ayrıştırmak için c kodu yazıyorum. Bitmap rgb verilerini ayrıştırabilir ve görüntüleyebilirim.Ama renk düzgün şekilde gelmiyor. Onun 32bit görüntü. (ARGB)Bitmap yükleyici düzgün renk göstermiyor

int pixels = width * height * 4; 
unsigned char* data = new unsigned char[pixels]; 
const int row = width * 4; 
const int colomn = height; 
unsigned char* datarow = new unsigned char[row]; 
unsigned char data1[pixels]; 
#if 1 
fseek(f, 54,SEEK_SET); 
fread(data, sizeof(unsigned char), pixels, f); 

fclose(file); 
#endif 
for(int i = 0; i < colomn; i++) { 
    for(int j = 0; j < row; j++) 
    { 
      data1[j+i*row] = data[j+((colomn-i)*row)]; 
    } 
} 

cevap

1

Muhtemelen bir görüntü scanlines ibaret olduğunu ve scanlines 32bit alligned olduğunu unutur diye maniest vardır. Yani basit satır/sütun hesaplamanız çalışmıyor.

Tarama çizgileriyle çalışmak için bkz. Dealing with padding in a BMP file in C.