[問題] OpenGl讀取與顯示灰階影像
大家好, 小弟是初學OpenGL的新手, 有些問題寫請教,
我目前在測試 "讀取與顯示灰階影像",
看到programmer-club的白老鼠大大也分享了這樣的code(彩色影像),
那麼我想說由於彩色bmp是24bit, 灰階是8bit, 把彩色*3, 改為灰階*1,
就把程式改了一下, 如下所示:
void GBmp::save( const char *spath )
{
bmp_header_info bhi;
bhi.bfType = 'MB';
bhi.bfSize = w*h*1*sizeof(unsigned char) + sizeof(bhi);
bhi.bfReserved1 = 0;
bhi.bfReserved2 = 0;
bhi.bfOffBits = sizeof(bhi);
bhi.biSize = 40;
bhi.biWidth = w;
bhi.biHeight = h;
bhi.biPlanes = 1;
bhi.biBitCount = 8;
bhi.biCompression = 0;
bhi.biSizeImage = 0;
bhi.biXpelsPerMeter = 0;
bhi.biYpelsPerMeter = 0;
bhi.biClrUsed = 0;
bhi.biClrImportant = 0;
int j;
GBmp a;
a.load( w,h, rgb );
//a.rb_swap();
unsigned char pad[3] = {0};
FILE *f0 = fopen( spath, "wb" );
fwrite( &bhi, sizeof(bmp_header_info), 1, f0 );
for( j=0; j<h; j++ )
{
fwrite( &a.rgb[j*w*1], sizeof(unsigned char), w*1, f0 );
fwrite( pad, sizeof(unsigned char), (4-w*1%4)%4, f0 );
}
fclose(f0);
}
程式功能是可以讀取與顯示, 但是我關掉時會出現錯誤
錯誤訊息,
after Normal block (#73) at 0x02020068.
CRT detected that the application wrote to memory after end of heap buffer.
白老鼠大的code(programmer club)
http://ppt.cc/-yKr
主程式code
#include <stdio.h>
#include "GL/glut.h"
#include "g_bmp.h"
GBmp bm0;
void display()
{
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
glRasterPos2f( -bm0.w/512.0, -bm0.h/512.0 );
glDrawPixels( bm0.w, bm0.h, GL_LUMINANCE, GL_UNSIGNED_BYTE, bm0.rgb );
glutSwapBuffers();
}
int main( int argc, char** argv )
{
glutInit(&argc, argv);
glutInitDisplayMode( GLUT_DOUBLE | GLUT_DEPTH | GLUT_RGBA );
glutInitWindowSize( 512, 512 );
glutInitWindowPosition (100, 100);
glutCreateWindow( "hihi" );
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
glutDisplayFunc(display);
bm0.load( "c.bmp" );
glutMainLoop();
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.122.192.147
※ 編輯: aada 來自: 140.122.192.147 (04/16 13:36)
※ 編輯: aada 來自: 140.122.192.147 (04/16 13:37)
→
04/16 14:01, , 1F
04/16 14:01, 1F
→
04/16 14:27, , 2F
04/16 14:27, 2F
推
04/16 14:45, , 3F
04/16 14:45, 3F
→
04/16 14:48, , 4F
04/16 14:48, 4F
→
04/16 14:53, , 5F
04/16 14:53, 5F
※ 編輯: aada 來自: 140.122.192.147 (04/16 14:54)
推
04/16 14:57, , 6F
04/16 14:57, 6F
→
04/16 15:00, , 7F
04/16 15:00, 7F
→
04/16 15:01, , 8F
04/16 15:01, 8F
※ 編輯: aada 來自: 140.122.192.147 (04/16 15:11)