2012-12-06 78 views
4

將YUV文件轉換爲RGB文件時出現問題。當我完成後,我無法用GIMP或其他查看器打開.rgb文件,但我成功打開下載的.rgb文件。請告訴我什麼是RGB文件的結構? (是否包含標題?)是否: 1)所有R值,然後是所有G值,然後是所有B值? 2)循環(一個R一個G一個B)*像素計數?YUV到RGB轉換。 RGB文件結構?

void convert_YUV_to_RGB (unsigned char Y1, unsigned char Y2, unsigned char Y3, unsigned char Y4, unsigned char U, unsigned char V) { 

/* 
//V1 for conversion YUV 420 -> RGB 
//1.164*(Y - 16) + 1.596*(V - 128); 
//1.164*(Y - 16) - 0.813*(V - 128) - 0.391*(U - 128); 
//1.164*(Y - 16) + 2.018*(U - 128); 
*/ 
rgb[rgb_counter++] = Y1 + 1.403*V; 
rgb[rgb_counter++] = Y1 + -0.344 * U + -0.714 * V;  
rgb[rgb_counter++] = Y1 + 1.770 * U ; 

rgb[rgb_counter++] = Y2 + 1.403*V; 
rgb[rgb_counter++] = Y2 + -0.344 * U + -0.714 * V;  
rgb[rgb_counter++] = Y2 + 1.770 * U ; 

rgb[rgb_counter++] = Y3 + 1.403*V; 
rgb[rgb_counter++] = Y3 + -0.344 * U + -0.714 * V;  
rgb[rgb_counter++] = Y3 + 1.770 * U ; 

rgb[rgb_counter++] = Y4 + 1.403*V; 
rgb[rgb_counter++] = Y4 + -0.344 * U + -0.714 * V;  
rgb[rgb_counter++] = Y4 + 1.770 * U ; } 


for each (int i in rgb) 
    { 
     fputc(i, pRGBFile); 
    } 

回答

0

您可以嘗試將數據寫入BMP file。 IIRC,RGB值是交錯的;即R1G1B1R2G2B2 ... RnGnBn

當你說'它不工作',你的意思是程序無法打開文件或顏色看起來不對?

+0

對不起,我的反應慢。我的意思是該程序無法打開文件。順便說一句,我沒有爲我的RGB文件製作任何標題。在您提供的鏈接中,有一個完美的圖像顯示BMP文件的結構,不幸的是我沒有找到RGB文件的相同圖片。 –

+1

這裏是'RGB'格式。 http://en.wikipedia.org/wiki/Silicon_Graphics_Image OP還可以使用Imagemagik工具來轉換圖像文件。 –