光栅运算疑问:VBNOTSRCCOPY、SRCAND、SRCPAINT等运算倒底会产生什么样的效果?

mfkinfo 2008-12-15 12:27:50
BitBlt的参数dwRop设为下值时,
VBSRCPAINT,通过OR操作符将源和目标矩形区域的颜色合并。
VBSRCAND,通过使用AND(与)操作符来将源和目标矩形区域内的颜色合并。
VBSRCINVERT,通过XOR(异或)操作符将源和目标矩形区域的颜色合并。
VBNOTSRCCOPY,将源矩形区域颜色取反,并拷贝到目标矩形区域。
这其中的源和目标倒底是怎样or\and\xor\not的,倒底是产生什么样的效果,有人能给讲讲么?半路和尚,实在想不通。

学了一个例程,有一段代码如下,其中hmaskdc和hInvertMaskDc分别是由picture1生成的蒙板和反转蒙板(或底片),调试都能正常生成,但是执行下面的3行语句就没了反应。注:picture2、picture1内提高预载入彩色图片,picture2尺寸大于picture1。
BitBlt Picture2.hDc, 0, 0, dx, dy, hMaskDC, 0, 0, vbSrcAnd
BitBlt Picture1.hDc, 0, 0, dx, dy, hInvertMaskDC, 0, 0, vbSrcAnd
BitBlt Picture2.hDc, 0, 0, dx, dy, Picture1.hDc, 0, 0, vbSrcPaint

捉摸着这两个问题可能有很大关联,第1个问题应是关键,所以就一起放上来了,希望有GDI高手能帮助解答一下。
...全文
1799 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
现在还是人类 2008-12-16
  • 打赏
  • 举报
回复
如果你使用的是掩码图,那么效果应该是取出掩码部分的图片与目标设备的图片融合
但你的方式不对,应该是
先将掩码图用vbSrcAnd的方式复制到目标设备,再用vbSrcInvert方式将需透明的图复制到目标设备
这样就行了,要注意的是需透明的地方用黑色
看看我写的范例
VB用Bitblt实现透明位图显示
fjwyshan 2008-12-16
  • 打赏
  • 举报
回复
ding
wap21 2008-12-16
  • 打赏
  • 举报
回复
ding
现在还是人类 2008-12-16
  • 打赏
  • 举报
回复
最好的电子资料库就是百度一下,只要你知道函数名,搜索一下就可以了。
如果要知道函数名,最好的方法就是在VC下查看函数申明,还有一个方法
可以了解得更加全,就是是直接用 UltraEdit 32 打开 gdi32.dll 然
后切换到文本模式查看,你可以随便搜索一个GDI函数,如 Bitblt,然后
你就可以看到旁边的全部是 GDI 函数名。这样看到的绝对是最全的 GDI
函数名称了。
mfkinfo 2008-12-16
  • 打赏
  • 举报
回复
佩服,不过我现在连在VB中调用API函数都吃不透,VC偶尔翻翻也是为了解决VB上的难题。
随便问一下,能推荐些GDI学习资料么?最好是网络资源,我们这里的电脑书籍实在是难找,更不要说是编程方面的了,偶见几本也是操作入门之类的。
mfkinfo 2008-12-16
  • 打赏
  • 举报
回复
谢了
现在还是人类 2008-12-16
  • 打赏
  • 举报
回复
没想过,不过如果要运算图像,公式很多,没必要研究太多BitBlt的参数。
因为功能确实不是很多。比如要实现带过渡的透明掩码效果,单靠BitBlt的参
数是不行的,还是要自己写,如果自己写出了高速的带过渡的透明掩码图叠加
的函数,那也不可能再用BitBlt来处理这种透明效果了。当然,高速的前提是
要熟悉GDI,然后稍微懂点VC就可以了。我现在基本很少用BitBlt做透明处理,
因为我自己用VC弄了个专门运算图形的DLL,里面有很多处理函数,作成了API
形式给我的程序调用,除非是简单的需求可能会用一下BitBlt,如果是透明处理,
用我的函数除了方便以外,效果会更加自然更漂亮,还可带阴影,在速度上用
VC做了优化处理,简洁了许多过程,也没看出有什么不妥的地方,当然也就不会
选BitBlt来处理啦。
mfkinfo 2008-12-16
  • 打赏
  • 举报
回复
实例我有啊,不过一直想不通,光栅运算是如何执行的。不过,重新整了一下思路,有头绪了,不知道对不对:
在光栅运算中,白色值为1,黑色值为0。和黑色相与的颜色自然也是0,而与白色相与的颜色值则还是它本身的值。
是不是这样啊,请指教。
mfkinfo 2008-12-15
  • 打赏
  • 举报
回复
SupermanKing :
  不好意思,你能看一下第2个问题么?说明白点就是:
  在第2问中,我想知道蒙板(hMaskDC,白底黑字)与目的场景区域(Picture2.hDc,彩色)进行与运算能产生什么效果,调试为什么没有反应?
  
  二进制位运算我是知道的,但不知道是什么进行的二进制运算,是颜色值吧?
  
mfkinfo 2008-12-15
  • 打赏
  • 举报
回复
没有人能回答吗?郁闷……
现在还是人类 2008-12-15
  • 打赏
  • 举报
回复
这其中的源和目标倒底是怎样or\and\xor\not的,倒底是产生什么样的效果,有人能给讲讲么?

效果?效果是要靠肉眼看的、感觉的,你要怎么说呢?
如果说or\and\xor\not是怎么回事,其实就是些二进制的位运算结果,真不知怎么说。

我到想问下一,你到底想实现怎样的效果?
是想自己运算出那种你想的效果还是想调用什么东西实现你想要的效果?

先把你的需求说出来(到底要干嘛),再说说你了解什么,你是如何做的,然后说一下你哪不明白
这样才好回答你问题呀。
源码直接下载地址: https://pan.quark.cn/s/a4b39357ea24 在信息技术领域中,开发一个模仿微信客服交流平台的界面是一项普遍的需求,尤其是在构建企业级沟通工具时。这个名为"仿微信客服交流界面(具备聊天信息本地数据库存储功能)"的项目,致力于为用户创造一个类似于微信的互动体验,并且已经完成了聊天信息在本地数据库中的保存功能,以此保障信息的安全性和可恢复性。另外,项目还包含了网络传输的代码,旨在帮助开发者更好地理解和将此功能整合进自己的应用程序中。 现在让我们深入探究聊天界面的构建过程。微信客服交流界面通常由以下几个核心组件构成:用户个人照片、昵称展示、消息展示气泡、时间标记、输入区域以及发送控制键。这些组件需要经过细致的排布,以确保界面既清晰又便于使用。在用户界面设计方面,一般采用 Material Design 或者 iOS 的 Human Interface Guidelines 来设计符合平台标准的界面。源代码文件 ChatUIDemo 可能包含了这一界面实现的代码,开发者可以通过查看和调整这个文件来个性化自己的聊天界面。 聊天信息在本地数据库中的存储是一项核心功能。在该项目中,或许选用了SQLite作为轻量级数据库,因为它易于集成,支持事务处理,适合存储结构化的数据,例如用户标识符、接收者标识符、消息内容、发送时刻等。通过运用SQL指令,能够执行数据的增加、删除、修改和查询操作,从而确保聊天记录的完整性和一致性。开发者可能需要关注如何将新接收到的消息添加到数据库中,以及如何从数据库中获取历史记录并在界面上进行展示。 在网络传输方面,可能通过HTTP或HTTPS协议来实现,并且使用了诸如AFNetworking(iOS)或O...
内容概要:本文围绕虚拟同步发电机(VSG)接入弱电网的序阻抗建模与稳定性分析开展研究,基于Matlab/Simulink平台搭建详细的仿真模型,系统复现并验证相关理论方法。研究重点包括VSG在弱电网条件下的正负序阻抗特性建模、基于小信号分析的扫频法建模流程、系统阻抗交互特性及潜在的失稳机理分析。通过具体仿真案例,深入探讨了VSG控制参数对系统稳定性的影响,旨在为新能源并网系统的稳定运行提供理论依据与技术支撑。该内容属于电力电子与电力系统稳定性交叉领域的前沿课题,具有重要的学术价值与工程应用前景。; 适合人群:具备电力系统分析、电力电子变换器控制等基础知识,熟悉Matlab/Simulink仿真环境,从事新能源并网、微电网控制、电力系统稳定性研究的研究生、科研人员及工程师;有志于复现高水平期刊论文中阻抗建模与稳定性分析方法的技术开发者。; 使用场景及目标:① 掌握虚拟同步发电机在弱电网中的序阻抗建模理论与实现方法;② 理解并实践基于扫频法的小信号稳定性分析全过程;③ 应用于构网型变流器、虚拟同步机等先进并网技术的稳定性研究与仿真验证。; 阅读建议:建议结合所提供的Simulink仿真模型与技术资料,按照文档结构循序渐进地学习,重点关注建模原理、仿真参数设置与结果分析过程,同时参考链接中的完整资源进行代码调试与深入探究。
内容概要:本文围绕电动汽车参与电力系统运行备用的能力评估开展研究,利用Matlab代码实现对电动汽车群体作为灵活性资源参与电网辅助服务的建模与仿真分析。研究重点包括基于多面体聚合与闵可夫斯基和的电动汽车可调能力(功率容量)量化方法、其在多时间尺度调度中的响应特性建模、运行备用潜力的聚合评估,以及结合智能优化算法的仿真验证,旨在系统性分析电动汽车在提供运行备用方面的技术可行性、调控潜力与系统价值。; 适合人群:具备电力系统运行与控制、智能优化算法基础,以及Matlab/Simulink编程能力的高校研究生、科研机构研究人员及从事新能源并网、需求响应、智能电网相关工作的工程技术人员。; 使用场景及目标:①掌握电动汽车集群可调能力的数学建模与聚合评估方法;②研究电动汽车参与电力系统多时间尺度协调调度的实现机制;③为高比例可再生能源电力系统的灵活性提升与运行备用资源配置提供技术参考与仿真工具支持。; 阅读建议:建议读者结合文中提供的Matlab代码深入理解电动汽车聚合建模与备用能力评估的具体实现流程,重点关注多面体建模、闵可夫斯基和运算及优化求解部分,并可延伸学习同平台关于V2G、微电网调度等相关资源以构建完整的知识体系。

1,488

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧