有关DrawDib Function的问题

lin1980 2004-02-02 01:42:36
void CDemoView::OnDraw(CDC* pDC)
{
// TODO: Add your specialized code here and/or call the base class
//////////
BITMAPFILEHEADER bfh;
BITMAPINFO bi;
CFile bitfile;
if (!bitfile.Open("20031010121212001105.bmp", CFile::modeRead))
return;
bitfile.Read(&bfh, sizeof(BITMAPFILEHEADER));
bitfile.Read(&bi, sizeof(BITMAPINFO));

LPVOID lpbits = (LPVOID)new char [bfh.bfSize - bfh.bfOffBits];
bitfile.ReadHuge(lpbits, bfh.bfSize - bfh.bfOffBits);

HDRAWDIB hDib = DrawDibOpen();
DrawDibBegin(hDib, pDC->GetSafeHdc(), bi.bmiHeader.biWidth, bi.bmiHeader.biHeight, &bi.bmiHeader,
bi.bmiHeader.biWidth, bi.bmiHeader.biHeight, DDF_BACKGROUNDPAL);
DrawDibRealize(hDib, pDC->GetSafeHdc(), TRUE);
DrawDibDraw(hDib, pDC->GetSafeHdc(), 0, 0, 350, 250, &bi.bmiHeader,
lpbits, 0, 0, bi.bmiHeader.biWidth, bi.bmiHeader.biHeight, DDF_BACKGROUNDPAL);
delete [] lpbits;
bitfile.Close();
显示24位位图的测试代码,但DEBUG下位图显示的颜色不对(偏红),RELEASE下根本就不显示,请问错在哪里?如何改?
...全文
31 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
lin1980 2004-02-03
  • 打赏
  • 举报
回复
上面的问题解决了,新问题来了。
CTestView::CTestView()
{
m_hDib = DrawDibOpen();
BITMAPFILEHEADER bfh;
CFile bitfile;
if (!bitfile.Open("20031010121212001105.bmp", CFile::modeRead))
return;
bitfile.Read(&bfh, sizeof(BITMAPFILEHEADER));
bitfile.Read(&m_bi, sizeof(BITMAPINFOHEADER));

m_lpbits = (char *)new char [bfh.bfSize - bfh.bfOffBits];
if (!m_lpbits) return;
bitfile.ReadHuge(m_lpbits, bfh.bfSize - bfh.bfOffBits);
bitfile.Close();
}

void CTestView::OnDraw(CDC* pDC)
{
CTestDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here

DrawDibBegin(m_hDib, pDC->GetSafeHdc(), m_bi.bmiHeader.biWidth, m_bi.bmiHeader.biHeight, &m_bi.bmiHeader,
m_bi.bmiHeader.biWidth, m_bi.bmiHeader.biHeight, 0);
DrawDibRealize(m_hDib, pDC->GetSafeHdc(), FALSE);
DrawDibDraw(m_hDib, pDC->GetSafeHdc(), 100, 0, 400, 300, &m_bi.bmiHeader,
m_lpbits, 0, 0, m_bi.bmiHeader.biWidth, m_bi.bmiHeader.biHeight, 0);
DrawDibEnd(m_hDib);
}
以上的代码在DEBUG下工作正常,但RELEASE下vfw库发生指针读取的错误,如果换成100, 0, 350, 250,则RELEASE下就没有问题。这是为什么?
hell190109 2004-02-02
  • 打赏
  • 举报
回复
用不用设置调色版?

4,445

社区成员

发帖
与我相关
我的任务
社区描述
图形图像/机器视觉
社区管理员
  • 机器视觉
  • 迪菲赫尔曼
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧