|
째즈토끼 님이 쓰신 글 :
: 음.. PWordArray 라는 것도 있네요,,,
: 이름만으로도 쫌 복잡한듯...
:
: 그냥
:
: WORD *pbmp;
: ...
: : pbmp =(WORD *)h_Bitmap->ScanLine[py];
: ...
: pbmp[px] = s_Buff[j]; (백설표 없음)
:
: 이렇게 하면 되지않을까 싶습니다.
:
:
: 공부중 님이 쓰신 글 :
: : void __fastcall TForm2::BitmapToBuff( Graphics::TBitmap *d_Bitmap, unsigned char *d_Buff )
: : {
: : unsigned char *tBuff;
: : int pos;
: : for(int y = 0; y < m_iTextHeight; y++)
: : {
: : tBuff = (unsigned char *) d_Bitmap->ScanLine[y];
: : pos = m_iTextWidth * 4 * y;
: : memcpy(d_Buff+pos,tBuff ,((m_iTextWidth)*4));
: : }
: :
: : }
: :
: : Word __fastcall TForm2::TORGB(byte blue, byte green , byte red)
: : {
: : return((blue>>3)<<10) | ((green>>3)<<5) | (red>>3);
: : }
: :
: : void __fastcall TForm2::Button1Click(TObject *Sender)
: : {
: : int a = m_iTextWidth * 4 * m_iTextHeight;
: : unsigned char *d_Buff = new unsigned char[a];
: :
: : Graphics::TBitmap *s_Bitmap = new Graphics::TBitmap();
: : Word *s_Buff = new Word[a];
: :
: : if(OpenDialog1->Execute() == true)
: : {
: : s_Bitmap->LoadFromFile(OpenDialog1->FileName);
: : }
: :
: : BitmapToBuff(s_Bitmap,d_Buff);
: :
: : Graphics::TBitmap *c_Bitmap = new Graphics::TBitmap();
: : int k = 0;
: : for(int i = 0;i <a-3; i+=4)
: : {
: : s_Buff[k] = TORGB(d_Buff[i],d_Buff[i+1],d_Buff[i+2]);
: : Memo1->Lines->Add(s_Buff[k]);
: : k++;
: : }
: : Graphics::TBitmap *h_Bitmap = new Graphics::TBitmap();
: : long int px,py;
: : PWordArray pbmp;
: : h_Bitmap->Width = m_iTextWidth;
: : h_Bitmap->Height = m_iTextHeight;
: : h_Bitmap->PixelFormat = pf15bit;
: : int j = 0;
: : for(int py = 0; py < m_iTextHeight ;py++);
: : {
: : pbmp =(PWordArray)h_Bitmap->ScanLine[py];
: :
: : for(px =0; px < m_iTextWidth;px++)
: : {
: : *pbmp[px] = s_Buff[j];<- 이부분에서 메모리 오류가 납니다
: : j++;
: : }
: : }
: : 0번째는 들어가지는데 1 부터 메모리 오류가 나네요 메모리 오류가 안나게 바꾸려면 어떻해 해야 하나요?
|