使用设备上下文在CImage对象上绘制线

莫哈卜·麦瑟夫(Mohab Mesherf)

我正在构建一个MFC c ++应用程序,在该应用程序中,我让用户读取图像,在其上画线然后保存。

所以我有一个“ CImage”对象,称为“ Image”,用户将图像加载到其中。

并且我有一个设备上下文对象,并且能够使用“ OnLButtonDown”和“ OnLButtonUp”事件处理程序在运行时在设备上下文对象上画线

然后,我让用户使用“ CImage.save”保存图像。保存了图像,但是没有设备上下文绘制的线,这是可以预期的..但是我确实希望它们出现在保存的图像中。

问题是如何获取设备上下文对象来影响我的CImage对象?

这是鼠标按下的事件处理程序

void CProFilterDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
    curser =point;
    if (draw && Boundry.PtInRect(point) )
    {
        CDialogEx::OnLButtonDown(nFlags, point);
    }

}

当鼠标按钮向上时,这一个

void CProFilterDlg::OnLButtonUp(UINT nFlags, CPoint point)
{
    if (draw && Boundry.PtInRect(curser) && Boundry.PtInRect(point))
    {
        CClientDC dc(this);
        dc.MoveTo(curser);
        dc.LineTo(point);
        CDialogEx::OnLButtonUp(nFlags, point);
    }


}

这是我加载我的Cimage对象的地方

void CProFilterDlg::OnBnClickedBtnBrowse()
{
    CFileDialog Browse(true);
    if(Browse.DoModal() == IDOK)
    {
         ImagePath = Browse.GetPathName();
    }

        image.Load(ImagePath);
}

这是我保存我的CImage的地方

void CProFilterDlg::OnBnClickedSave()
{
    CFileDialog Save(true);
    if(Save.DoModal() == IDOK)
    {
        ImagePath = Save.GetPathName();
    }
    image.Save(ImagePath,Gdiplus::ImageFormatBMP);
}
降低者

从显示的结果看,您似乎使用了错误的DC。您似乎在对话框中使用DC(即CCLientDC),而不是实际的CImage。您应该从以下位置构建DC

CImage :: GetDC()

该DC将具有当前选择的位图。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

获取画布绘制的上下文线的边界(位置)

来自分类Dev

如何创建用于绘制的子矩形设备上下文

来自分类Dev

在 CAShapeLayer 上绘制 bezierPath 时上下文无效

来自分类Dev

使用Javascript获取移动设备上下文参数

来自分类Dev

在Firefox中的画布上下文对象上使用SVG调用drawImage()时出现问题

来自分类Dev

使用Hilt注入上下文:此字段泄漏上下文对象

来自分类Dev

在查询对象上封装上下文构造函数

来自分类Dev

onCreate 上的上下文

来自分类Dev

使用SWRevealViewController时传递托管对象上下文

来自分类Dev

TypeError:使用React上下文时对象不可迭代

来自分类Dev

错误:不在对象上下文中时使用$ this

来自分类Dev

不在对象上下文中使用$ this php

来自分类Dev

TypeError:使用React上下文时对象不可迭代

来自分类Dev

错误:不在对象上下文中时使用“ $ this”

来自分类Dev

当不在对象上下文中时使用$ this吗?

来自分类Dev

不在对象上下文中使用$ this php

来自分类Dev

是否可以在上下文docBase上使用通配符

来自分类Dev

如何在上下文ActionMode栏上更改分隔线的样式

来自分类Dev

如何在上下文ActionMode栏上更改分隔线的样式

来自分类Dev

如何找到特定的可绘制对象具有上下文引用

来自分类Dev

允许在移动设备上滚动的Durandal模态/对话框上下文

来自分类Dev

触摸设备上嵌入的youtube视频自动显示右键单击上下文菜单

来自分类Dev

如何包含响应上下文以使布局在移动设备上响应?

来自分类Dev

如何从iOS上的Grand Central Dispatch Queue异步绘制到GLKit的OpenGL ES上下文

来自分类Dev

如何从iOS上的Grand Central Dispatch Queue异步绘制到GLKit的OpenGL ES上下文

来自分类Dev

如何使用javascript和Canvas 2D上下文注释线?

来自分类Dev

实体框架对象上下文刷新

来自分类Dev

python对象的布尔上下文

来自分类Dev

执行上下文和((此对象))

Related 相关文章

  1. 1

    获取画布绘制的上下文线的边界(位置)

  2. 2

    如何创建用于绘制的子矩形设备上下文

  3. 3

    在 CAShapeLayer 上绘制 bezierPath 时上下文无效

  4. 4

    使用Javascript获取移动设备上下文参数

  5. 5

    在Firefox中的画布上下文对象上使用SVG调用drawImage()时出现问题

  6. 6

    使用Hilt注入上下文:此字段泄漏上下文对象

  7. 7

    在查询对象上封装上下文构造函数

  8. 8

    onCreate 上的上下文

  9. 9

    使用SWRevealViewController时传递托管对象上下文

  10. 10

    TypeError:使用React上下文时对象不可迭代

  11. 11

    错误:不在对象上下文中时使用$ this

  12. 12

    不在对象上下文中使用$ this php

  13. 13

    TypeError:使用React上下文时对象不可迭代

  14. 14

    错误:不在对象上下文中时使用“ $ this”

  15. 15

    当不在对象上下文中时使用$ this吗?

  16. 16

    不在对象上下文中使用$ this php

  17. 17

    是否可以在上下文docBase上使用通配符

  18. 18

    如何在上下文ActionMode栏上更改分隔线的样式

  19. 19

    如何在上下文ActionMode栏上更改分隔线的样式

  20. 20

    如何找到特定的可绘制对象具有上下文引用

  21. 21

    允许在移动设备上滚动的Durandal模态/对话框上下文

  22. 22

    触摸设备上嵌入的youtube视频自动显示右键单击上下文菜单

  23. 23

    如何包含响应上下文以使布局在移动设备上响应?

  24. 24

    如何从iOS上的Grand Central Dispatch Queue异步绘制到GLKit的OpenGL ES上下文

  25. 25

    如何从iOS上的Grand Central Dispatch Queue异步绘制到GLKit的OpenGL ES上下文

  26. 26

    如何使用javascript和Canvas 2D上下文注释线?

  27. 27

    实体框架对象上下文刷新

  28. 28

    python对象的布尔上下文

  29. 29

    执行上下文和((此对象))

热门标签

归档