GDI绘制_matlab中intlinprog函数用法

GDI绘制_matlab中intlinprog函数用法设备上下文绘图有很多种方法。例如通过创建位图画刷,利用其填充一个区域来实现图像的绘制。此外,还可以使用CDC类的位图函数来输出位图到设备上下文中。BitBlt用于从原设备中复制位图到目标设备,语法格式如下:BOOLBitBlt(intx,inty,intnWidth,intnHeight,CDC*pSrcDC,intxSrc,intySrc,DWORDdwRop);x:目

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

设备上下文绘图有很多种方法。例如通过创建位图画刷,利用其填充一个区域来实现图像的绘制。此外,还可以使用CDC类的位图函数来输出位图到设备上下文中。

BitBlt 用于从原设备中复制位图到目标设备,语法格式如下:

BOOLBitBlt(int x,int y,int nWidth,int nHeight,CDC*pSrcDC,int xSrc,int ySrc,DWORDdwRop);

x:目标矩形区域的左上角x轴坐标点。

y:目标矩形区域的左上角y轴坐标点。

nWidth:在目标设备中绘制位图的宽度。

nHight:在目标设备中绘制位图的高度。

pSrcDC:源设备上下文对象指针。

xSrc:源设备上下文的起点x轴坐标,函数从该起点复制位图到目标设备。

ySrc:源设备上下文的起点y轴坐标,函数从该起点复制位图到目标设备。

dwRop:光栅操作代码

dwRop有如下选择:

BLACKNESS           使用黑色填充目标区域

DSTINVERT              目标矩阵区域颜色取反

MERGECOPY            使用与运算组合原设备矩形区域的颜色和目标设备的画刷

MERGEPAINT           使用或运算将反向的源矩形区域的颜色和目标矩形区域的颜色合并

NOTSRCCOPY          复制源设备区域的反色到目标设备中

NOTSRCERASE        使用或运算组合源设备区域与目标设备区域的颜色,然后对结果颜色取反

PATCOPY                  复制源设备当前选中的画刷到目标设备

PATINVERT               使用异或运算组合目标设备选中的画刷和目标设备区域的颜色

PATPAINT                 通过或运算组合目标区域当前选中的画刷和源设备区域反转的颜色

SRCAND                   使用与运算组合源设备和目标设备区域的颜色

SRCCOPY                 直接复制源设备区域到目标设备中

SRCERASE               使用与运算组合目标设备区域的反色与源设备区域的颜色

SRCINVERT              使用异或运算组合源设备区域颜色和目标设备区域颜色

SRCPAINT                 使用或运算组合源设备区域颜色和目标设备区域颜色

WHITENESS             使用白色填充目标区域

StretchBlt与BitBlt不同在于StretchBlt方法能够延伸或收缩位图以适应目标区域的大小。格式如下:

BOOLStrevhBlt(int x,int y,int nWidth,int nHeight,CDC* pSrcDC,int xSrc,int ySrc,intnSrcWidth,int nSrcHeight,DWORD dwRop);

 

x:目标矩形区域的左上角x轴坐标点。

y:目标矩形区域的左上角y轴坐标点。

nWidth:在目标设备中绘制位图的宽度。

nHight:在目标设备中绘制位图的高度。

pSrcDC:源设备上下文对象指针。

xSrc:源设备上下文的起点x轴坐标,函数从该起点复制位图到目标设备。

ySrc:源设备上下文的起点y轴坐标,函数从该起点复制位图到目标设备。

nSrcWidth;需要复制的位图宽度。

nSrcHeight;需要复制的位图高度。

dwRop:光栅操作代码。

下面是两种方法对比程序,程序代码如下:

void CoutoutBmpView::OnDraw(CDC* pDC)

{

     COutputBmpDoc* pDoc =GetDocument();//获取文档对象

     ASSERT_VALID(pDoc);//验证文档对象

     CDC memDC;//定义一个设备上下文

     memDC.CreateCompatibleDC(pDC);//创建兼容的设备上下文

     CBitmap bmp;//定义位图对象

     bmp.LoadBitmap(IDB_BKBITMAP);//加载位图

     memDC.SelectObject(&bmp);//选中位图对象

     pDC->BitBlt(30,20,180,180,&memDC,1,1,SRCCOPY);//绘制位图

     //以上是利用BitBlt来绘制位图

     CRect rc(30,20,210,200);//定义一个区域

     CBrush brush(RGB(0,0,0));//定义一个黑色的画刷

     pDC->FrameRect(rc,&brush);//绘制矩形边框

     //只是用来观察两者区别的,绘制一个矩形框

     rc.OffsetRect(220,0);//移动区域

//下边是利用StretchBlt绘制的位图

     BITMAP BitInfo;//定义位图结构

     bmp.GetBitmap(&BitInfo);//获取位图信息

     int x = BitInfo.bmWidth;//获取位图宽度

     int y = BitInfo.bmHeight;获取位图高度

     pDC->StretchBlt(rc.left,rc.top,rc.Width(),rc.Height(),&memDC,0,0,x,y,SRCCOPY);//绘制位图

     pDC->FrameRect(rc,&brush);//绘制边框

     brush.DeleteObject();//释放画刷

     memDC.DeleteDC();//释放设备上下文

     bmp.DeleteObject();//释放位图对象

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/180455.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • F1 score,micro F1score,macro F1score 的定义

    F1 score,micro F1score,macro F1score 的定义本篇博客可能会继续更新最近在文献中经常看到precesion,recall,常常忘记了他们的定义,在加上今天又看到评价多标签分类任务性能的度量方法microF1score和macroF2score。决定再把F1score一并加进来把定义写清楚,忘记了再来看看。F1scoreF1score(以下简称F1)是用来评价二元分类器的度量,它的计算方法如下:F1  …

    2022年10月14日
    0
  • 高通平台环境搭建,编译,系统引导流程分析「建议收藏」

    高通平台环境搭建,编译,系统引导流程分析「建议收藏」1、高通平台android开发总结1.1搭建高通平台环境开发环境在高通开发板上烧录文件系统建立高通平台开发环境高通平台,android和modem编译流程分析高通平台7620启动流程分析qcril流程分析,设置sim卡锁pythonscons语法学习Python语言之scons工具流程分析: 1.

    2022年10月19日
    0
  • WinRAR去广告实现「建议收藏」

    WinRAR去广告实现「建议收藏」1.解压工具居然还有广告?2.我们可以看到我们点击压缩包之后弹出了窗口标题为WinRAR的广告窗口3.直接OD打开WinRAR.exe,右键->中文搜索引擎->智能搜索4.右键->查找,或使用快捷键Ctrl+F或Insert5.输入我们刚才看到的窗口标题名称6.最后找到两个WinRAR且有创建窗口的操作,我们都下断点尝试一下7.运行测试第一个断点,观察窗口弹出情况7.1F9运行程序,程序断在了我们第一个断点的位置,此时是没有窗口弹出的(因为程序断在了创建窗

    2022年6月4日
    29
  • 在测试集上训练,还能中CVPR?这篇IEEE批判论文是否合理?

    在测试集上训练,还能中CVPR?这篇IEEE批判论文是否合理?在测试集上训练,还能中CVPR?这篇IEEE批判论文是否合理?

    2022年4月21日
    56
  • Kafka容错性测试

    Kafka容错性测试1.查看topic信息(“副本”是为该分区复制日志的节点列表,无论它们是引导者还是当前处于活动状态,“isr”是“同步”副本的集合。这是副本列表的子集,当前仍处于活动状态并追随领导者。)[hadoop@hadoop000tmp]$kafka-topics.sh–describe–zookeeperhadoop000:2181–topicmy-replicated-topi…

    2022年7月25日
    7
  • C++ostringstream用法

    C++ostringstream用法ostringstream用法1.类型转换要求包含头文件;字符串和int之间的互相转换;intnum=100;stringstr=””;std::ostringstreamoss;oss<<num;oss>>str; //str结果为”100″;可用于自定义类型转换,类之间转换;classA{inta;}classB{intb;}Aa;Bb;std::ostringstreamoss;os

    2022年7月13日
    12

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号