利用GDI+制作模糊效果

 在vista下,VS2008已经带了gdiplus1.1的库。

看看下面图片效果,是不是很神奇。

配置好GDIPLUS,你就可以在程序中实现了。

所以我们再也不用找一些算法来实现模糊,锐化,对比度,高亮等效果了

void CCatchScreenDlg::OnPaint()
{
 if (IsIconic())
 {
  CPaintDC dc(this); // device context for painting

  SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);

  // Center icon in client rectangle
  int cxIcon = GetSystemMetrics(SM_CXICON);
  int cyIcon = GetSystemMetrics(SM_CYICON);
  CRect rect;
  GetClientRect(&rect);
  int x = (rect.Width() - cxIcon + 1) / 2;
  int y = (rect.Height() - cyIcon + 1) / 2;

  // Draw the icon
  dc.DrawIcon(x, y, m_hIcon);
 }
 else
 {
  Bitmap* pBmp = new Bitmap(L"background.bmp");//打开图片

  RECT rc = {0, 0, 100, pBmp->GetHeight()};

  Blur m_blur;

  BlurParams bp;

  bp.expandEdge = false;
  bp.radius = 5.0f;

  m_blur.SetParameters(&bp);

  pBmp->ApplyEffect(&m_blur, &rc);

  Graphics g(m_hWnd);

  g.DrawImage(pBmp, 0, 0);


  CDialog::OnPaint();
 }
}

如此简单。

你也来试试吧。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
GDI(图形设备接口)是一种用于创建和绘制二维图形的编程接口。通过使用GDI,我们可以制作简易地图。下面我将以300字回答这个问题。 首先,我们需要准备一张地图的背景图像,这可以是一个包含地理特征的图片,如山脉、河流和城市等。我们可以使用GDI的`LoadImage`函数加载这个图片,并使用`BitBlt`函数将其绘制在画布上。 接下来,我们需要在地图上添加一些标记,以表示特定的地点或信息。我们可以使用GDI的绘图函数,如`LineTo`和`Rectangle`,在指定位置绘制线段或矩形。我们还可以使用`DrawText`函数在地图上添加文字标签。这些标记可以表示城市、交通站点或其他地理信息。 除了标记,我们可能还需要在地图上绘制路径或线路。我们可以使用GDI的`Polyline`函数绘制连接多个坐标点的折线,以表示路径。我们还可以使用`SetPixel`函数在地图上绘制像素点,以表示特定的位置或地点。 最后,在地图上添加交互功能也是一种常见的需求。我们可以使用GDI的`SetWindowLongPtr`函数将地图画布与窗口关联起来,从而实现交互。例如,我们可以通过鼠标点击事件在地图上选中或高亮特定的地点或路径。 总结来说,使用GDI制作简易地图主要涉及加载背景图像、添加标记和线路、以及实现交互功能。通过调用GDI提供的绘图函数,我们可以轻松地制作出具有地理特征和标记的简易地图。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值