wxwidgets在图片上增加文件水印

第一种,直接画在画布上

C++代码
  1. void DragShape::OnPaint( wxPaintEvent &WXUNUSED(event) )   
  2. {   
  3.     wxPaintDC dc( this );   
  4.     PrepareDC( dc );   
  5.   
  6.     Draw(dc, _T("aabbcc"));   
  7. }   
  8.   
  9.  bool DragShape::Draw(wxDC& dc, wxString name)   
  10. {      
  11.        wxCoord x = 10,   
  12.             y = 10;   
  13.         wxImage image;   
  14.         image.LoadFile(_T("ss.jpg"), wxBITMAP_TYPE_JPEG)   
  15.              
  16.        // 将其转换成bitmap   
  17.         wxBitmap m_bitmap(img);   
  18.   
  19.         wxMemoryDC memDC;   
  20.         memDC.SelectObject(m_bitmap);   
  21.         memDC.SetPen(*wxBLACK_PEN);   
  22.         memDC.SetFont( wxFont(14, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false) );   
  23.         memDC.DrawText(name,x,y);   
  24.   
  25.         dc.Blit(m_pos.x, m_pos.y, m_bitmap.GetWidth(), m_bitmap.GetHeight(),   
  26.             & memDC, 0, 0, wxCOPY, true);   
  27. }   
  28.   

第二种,画到图片上,显示到staticbitmap

 

C++代码
  1. wxImage img(_T("ss.jpg"), wxBITMAP_TYPE_JPEG);   
  2.   
  3.   // 将其转换成bitmap   
  4.   wxBitmap bmp(img);   
  5.   
  6.   wxCoord x = 10,   
  7.           y = 10;   
  8.   wxMemoryDC memDC;   
  9.   memDC.SelectObject(bmp);   
  10.   memDC.SetPen(*wxBLACK_PEN);   
  11.   memDC.SetFont( wxFont(14, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false) );   
  12.   memDC.DrawText(_T("ddddddd"),x,y);   
  13.   memDC.SelectObject(wxNullBitmap);   
  14.   
  15.   //更新其位图   
  16.   StaticBitmap1->SetBitmap(bmp);   

上一篇: 局部变量、全局变量、堆、堆栈、静态和全局   下一篇: wxShowTip信息提示框的使用

你问我答

  1. #1 头像 keminar 2010-01-27 18:44:44
    memDC.SetPen(*wxBLACK_PEN);  
    设置画线笔的颜色,而不是写字的颜色。
    要设置字体颜色要用memDC.SetTextForeground(wxColour(*wxRED));

        wxMemoryDC memDC;
        memDC.SelectObject(bmp);
        memDC.SetFont( wxFont(18, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false) );
        memDC.SetTextForeground(wxColour(*wxRED));
        memDC.DrawText(current_->name,x,y);
        memDC.SelectObject(wxNullBitmap);

提交疑问

回顶部