首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

c# GDI+简单绘图(一) c# GDI+简单绘图(一)

c# GDI+简单绘图(一)   最近对GDI+这个东西接触的比较多,也做了些简单的实例,比如绘图板,仿QQ截图等.   ...废话不多说了,我们先来认识一下这个GDI+,看看它到底长什么样....GDI+:Graphics Device Interface Plus也就是图形设备接口,提供了各种丰富的图形图像处理功能;在C#.NET中,使用GDI+处理二维(2D)的图形和图像,使用DirectX...大概了解了什么是GDI+后,我们来看一下绘图要用到的主要工具,要画图,肯定要画板吧,在C#中画板可以通过Graphics这个类来创建,有了画板,总得弄个笔什么之类的吧,不然怎么画呀,难不成我们用手指画....其它相关链接: c# GDI+简单绘图(一):介绍GDI+ 基础知识 c# GDI+简单绘图(二):介绍GDI+绘图知识 c# GDI+简单绘图(三):实现仿QQ截图功能 c# GDI

1.7K40
您找到你想要的搜索结果了吗?
是的
没有找到

DUI -实现GDI透明效果

实现GDI透明的关键是 1、需要把内容画到一个临时位图上,同时保护好alpha通道。...需要做反锯齿处理,反锯齿处理的关键也是和背景色做混合,因此从原位图复制出数据). 4.把临时位图的alpha全置为1(GDI函数只会将那些变色的点的alpha通道清0,所以alpha清0的像素点就是需要保留的像素点...) 5.绘制相关内容到临时DC. 6.依据3和4,GDI函数处理后未变化的alpha都是1,变化的alpha都为0,将所有的alpha减1,则未变化的alpha都是0,变化的alpha都为0xff((byte...对于那些被GDI函数改变过的点,由于其alpha值都变成了255,其RGB部分,AlphaBlend会根据BLENDFUNCTION中指定的alpha值来和原值混合。...{ m_nWid = pRect->right-pRect->left; m_nHei = pRect->bottom-pRect->top; m_hBmp = SBitmap_GDI

10.2K63

C#调用GDI+1.1中的函数实现高斯模糊、USM锐化等经典效果。

GDI+1.1的版本中,MS加入不少新的特性,其中的特效类Effect就是一个很有吸引力的东西,可惜在VS2010的Image类中,却没有把这个类封装进来(不晓得是不是我没有发现),这个也许...其实,这些函数我在VB6下两年前就已经调用过,调用的方式也很简单明了,现在,在学习C#,就要考虑如何将他们封装入C#中。...问题来了,第一个参数bitmap的本意是GDI+的image对象的句柄,在C#中,有Bitmap类,实际上我们知道他就是GDI+的封装,那么他的具体的实例中肯定也对应了一个GDI+对象的句柄,但是他封装的太厉害了...,未给我们提供这个借口,这样一来,我们有两种选择,一是直接调用GDI+的加载图像的函数,得到对应的句柄,然后处理,然后调用GDI+的绘图API显示,但是这样无疑会增加工程量;二是我们强力爆破,寻找C#封装预留的后门...好了,那我们如何知道C#封装的那个GDI+句柄的值呢,有办法,相信每个C#高手身边都会有个类似Refleator这样的工具吧,直接去看看Image类的实现吧。

1.7K40

Win32C# 应用使用 GDI+ 对窗口截图(BitBlt)

如果你不打算引用 System.Drawing.Common,那么可以考虑使用裸的 GDI+ 来完成,可以参考 Win32/C# 应用不依赖任何库使用纯 GDI+ 对窗口截图(BitBlt) - walterlv...var oldHBitmap = Gdi32.SelectObject(cdc, (IntPtr)hBitmap); // 注:使用 GDI+ 截取“使用硬件加速过的”应用时,截取到的部分是全黑的...Gdi32.SelectObject(cdc, oldHBitmap); Gdi32.DeleteObject((IntPtr)hBitmap); Gdi32.DeleteDC...更多截窗口方法 (本文)Win32/C# 应用使用 GDI+ 对窗口截图(BitBlt) - walterlv Win32/C# 应用不依赖任何库使用纯 GDI+ 对窗口截图(BitBlt) - walterlv...Win32/C# 应用使用 PrintWindow 对窗口截图(PrintWindow) - walterlv 参考资料 Capturing an Image - Win32 apps - Microsoft

43030
领券