小弟初学图像变成,想在BMP图像上实现画点功能,比如在白色图像上上画黑点

解决方案 »

  1.   

    读取bmp图片,获得高度,宽度,数据区开始位置,以及每像素占用字节数,然后修改数据区中你想要画点的位置的数据,显示或写回.
      

  2.   


    drawPoint(HDC hdc, HBITMAP& hBmp, POINT pt, COLORREF color)
    {
    HDC hMemDC = ::CreateCompatibleDC(hdc);
    ::SelectObject(hMemDC, hBmp);
    ::SetPixel(hMemDC, pt.x, pt.y, color);
    ::DeleteDC(hMemDC);
    }
    //调用.
    HDC hdc = ::GetDC(m_hWnd);
    HDC hMemDC = ::CreateCompatibleDC(hdc);
    ::SelectObject(hMemDC, m_hBmp);
    ::BitBlt(hdc, 0, 0, 800, 600, hMemDC, 0, 0, SRCCOPY);
    ::DeleteDC(hMemDC);
      

  3.   

    上面错了,CSDN什么时候能修改自己的发言啊...//调用.
    m_hBmp = ::LoadBitmap(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BITMAP1));
    POINT pt = {10, 10};
    HDC hdc = ::GetDC(m_hWnd);
    drawPoint(hdc, m_hBmp, pt, RGB(255,0,0));
    //绘制BMP
    HDC hdc = ::GetDC(m_hWnd);
    HDC hMemDC = ::CreateCompatibleDC(hdc);
    ::SelectObject(hMemDC, m_hBmp);
    ::BitBlt(hdc, 0, 0, 800, 600, hMemDC, 0, 0, SRCCOPY);
    ::DeleteDC(hMemDC);
      

  4.   

     
    lizhigang34 的方案可行!
    先将BMP装载,然后,与设备关联,直接使用设备画,就是在位图上面画,最后,还要将这个位图保存!
      

  5.   

    2楼的也可以 直接操作文件数据 但要求你了解BMP文件格式 其实也很简单