Nek*_*ode 2 c++ opengl xcode image bmp
我正在使用以下代码:
f = fopen( _stringhelper.STR("%s.bmp", filename), "wb" );
if( !f ) {
_core.Error( ERC_ASSET, "ncImageLoader::CreateImage - Couldn't create %s image.\n", filename );
return false;
}
int w = width;
int h = height;
int i;
int filesize = 54 + 3 * w * h;
byte bmpfileheader[14] = {
'B', 'M',
0, 0, 0, 0,
0, 0,
0, 0,
54, 0, 0, 0 };
byte bmpinfoheader[40] = { 40, 0, 0, 0,
0, 0, 0, 0,
0, 0, 0, 0,
1, 0,
24, 0};
byte bmppad[3] = { 0, 0, 0 };
bmpfileheader[2] = (byte)( filesize );
bmpfileheader[3] = (byte)( filesize >> 8 );
bmpfileheader[4] = (byte)( filesize >> 16 );
bmpfileheader[5] = (byte)( filesize >> 24 );
bmpinfoheader[4] = (byte)( w );
bmpinfoheader[5] = (byte)( w >> 8);
bmpinfoheader[6] = (byte)( w >> 16 );
bmpinfoheader[7] = (byte)( w >> 24);
bmpinfoheader[8] = (byte)( h );
bmpinfoheader[9] = (byte)( h >> 8 );
bmpinfoheader[10] = (byte)( h >> 16 );
bmpinfoheader[11] = (byte)( h >> 24 );
fwrite( bmpfileheader, 1, 14, f );
fwrite( bmpinfoheader, 1, 40, f );
for( i = 0; i < h; i++ ) {
fwrite( data + ( w * (h - i - 1) * 3 ), 3, w, f );
fwrite( bmppad, 1, ( 4 - ( w * 3 ) % 4 ) % 4, f );
}
fclose(f);
Run Code Online (Sandbox Code Playgroud)
我glReadPixels()
用来捕获显示数据。如果我转到保存此文件的文件夹并打开它-很好,调色板很好,但它倒过来了。我试图写for循环“向后”,但仍然一无所获..我不明白。
可能是什么问题?
位图是“倒置”存储的,请参见此处:
您可以将高度设置为负值以使其正确显示。(-高度)
如果biHeight为负,则位图是自上而下的DIB,其原点位于左上角。
归档时间: |
|
查看次数: |
2462 次 |
最近记录: |