C#使用GDI中的API函数

本文介绍了在.NET平台下如何利用GDI进行图形图像处理以提高效率,对比了GDI与GDI+在性能上的差异,并提供了一个自定义的NativeGdi32Api类,包含了GDI的一些关键函数。对于更高效率的需求,作者建议可以考虑使用OpenGL或DirectX,并提到了.NET下的Tao.OpenGL和Managed DirectX库。
摘要由CSDN通过智能技术生成
  我们知道在.NET 平台下主要是用GDI+来进行图形图像处理,在效率要求不高的情况下使用GDI+已经足够实现各种功能了,但一旦要求效率的情况下,我们可以考虑使用GDI来代替GDI+,网上有人士做过相关测试(本人也测试过),GDI在图形、图像绘制方面效率较GDI+有很大提高。下面将自己开发过程中整理到的NativeGdi32Api类贴出来:
public static class NativeGdi32Api
    {
        [ DllImport("gdi32.dll" )]
        public static extern int SetDIBits (IntPtr hdc, IntPtr hBitmap, int nStartScan , int nNumScans, IntPtr lpBits, IntPtr lpBI , int wUsage);


        [ DllImport("gdi32.dll" )]
        public static extern int SetDIBitsToDevice (IntPtr hdc, int x, int y , int dx, int dy, int SrcX, int SrcY, int Scan , int NumScans, IntPtr Bits, IntPtr BitsInfo , int wUsage);


        [ DllImport("gdi32.dll" )]
        public static extern IntPtr CreateDIBSection (IntPtr hdc, IntPtr pBitmapInfo, int un , IntPtr lplpVoid , IntPtr handle, int dw);


        [ DllImport("gdi32.dll" , CharSet = CharSet.Auto )]
        public static extern int SetPixel (IntPtr hdc, int x, int y , int crColor);


        [ DllImport("gdi32.dll" , CharSet = CharSet.Auto )]
        public static extern int GetPixel (IntPtr hdc, int x, int y );




        [ DllImport("gdi32.dll" , CharSet= CharSet.Auto )]
        public static extern int CombineRgn (IntPtr dest, IntPtr src1, IntPtr src2 , int flags);


        [ DllImport("gdi32.dll" , CharSet= CharSet.Auto )]
        public static extern IntPtr CreateBrushIndirect (ref LOGBRUSH brush );




        [ DllImport("gdi32.dll" , CharSet= CharSet.Auto )]
        publ
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值