C# 画点

画点的方法:
方法一:
     用picGraphics.FillRectangle(new SolidBrush(fillColor), p.X, p.Y, 1, 1); 即用一个像素填充方法.
方法二:
    用gdi32.dll库中的SetPixel方法
     [DllImport("gdi32.dll")]
     private static extern int SetPixel(IntPtr hdc, int x1, int y1, int color);
获得指定点的颜色:
   用gdi32.dll库中的GetPixel方法
   [DllImport("gdi32.dll")]
   private static extern uint GetPixel(IntPtr hDC, int XPos, int YPos);
   下面给出一些图形操作的集合:
   

       #region 图形操作函数集合
        [DllImport("gdi32.dll")]
        private static extern uint GetPixel(IntPtr hDC, int XPos, int YPos);

        [DllImport("gdi32.dll")]
        private static extern int SetPixel(IntPtr hdc, int x1, int y1, int color);

               
        
        static public byte GetRValue(uint color)
        {
            return (byte)color;
        }
           
        static public byte GetGValue(uint color)
        {
            return ((byte)(((short)(color)) >> 8));
        }

        static public byte GetBValue(uint color)
        {
            return ((byte)((color) >> 16));
        }

        static public byte GetAValue(uint color)
        {
            return ((byte)((color) >> 24));
        }

        private  uint RGB(Color color)
        {
            // 返回由RGB构成的32位uint
            uint R = color.R;
            uint G = color.G;
            uint B = color.B;
            G <<= 8;
            B <<= 16;
            return ((uint)(R|G|B));
        }
       
        public Color GetColor(Point p)
        {
            // 得到指定点的颜色RGB
            
            uint colorref = GetPixel(this.picGraphics.GetHdc(), p.X, p.Y);  // picGraphics是我用picturePox类中的CreateGraphics方法创建的Graphics对象
            this.picGraphics.ReleaseHdc();
            byte Red = GetRValue(colorref);
            byte Green = GetGValue(colorref);
            byte Blue = GetBValue(colorref);
            return Color.FromArgb(Red, Green, Blue);
        }

        public void SetColor(Point p, Color fillColor)
        {
            SetPixel(this.picGraphics.GetHdc(), p.X, p.Y, (int)RGB(fillColor));
            this.picGraphics.ReleaseHdc();
        }
         #endregion

      希望对大家有所帮助!

### 回答1: b'arcgis engine c#\xe7\x94\xbb\xe7\x82\xb9\xe7\xba\xbf\xe9\x9d\xa2' 是一个基于 C# 的 ArcGIS Engine 应用程序开发框架,可用于创建点、线、面等图形元素来表示地图数据。 ### 回答2: ArcGIS Engine是一款由美国Esri公司开发的软件开发工具包,它可以帮助开发人员将ArcGIS技术集成到自己开发的桌面应用程序和服务器应用程序中。通过ArcGIS Engine,开发人员能够访问和操作地图、空间数据、地理处理和地图服务等GIS资源。 ArcGIS Engine提供了一套完整的GIS工具箱,包括地图浏览、地图查询、空间分析、数据编辑、地理编码、网络分析等功能模块,这些模块可以让开发人员快速构建出功能齐全的GIS应用程序。同时,ArcGIS Engine还提供了各种编程接口,包括COM、.NET和Java等,使得开发人员能够使用自己熟悉的编程语言进行开发。 除此之外,ArcGIS Engine还支持多种开发环境,包括Visual Studio、Eclipse、Delphi等,这样使得开发人员可以在自己习惯的开发环境中进行开发。而且,ArcGIS Engine还具备完善的文档和示例库,这些资源可以帮助开发人员更快地了解和掌握如何使用ArcGIS Engine进行开发。 总的来说,ArcGIS Engine是一款非常优秀的GIS软件开发工具包,它可以帮助开发人员快速构建出功能强大的GIS应用程序,提高开发效率和开发质量。如果您是一位GIS开发人员,认真学习和使用ArcGIS Engine将会是您不错的选择。 ### 回答3: ArcGIS Engine C++ ArcGIS Engine是由Esri开发的一个软件平台,可以用于创建和部署专业级GIS应用程序。ArcGIS Engine C++是ArcGIS Engine平台上的一种编程语言,也是一种面向对象的编程语言。它使用C++语言作为主要的开发语言,可以利用ArcObjects来访问和管理地理空间数据,并将它们用于地图制作、空间分析等任务。 ArcGIS Engine C++提供给开发者一个底层的GIS编程框架,可以利用该框架自定义地理空间应用程序的各种组件,比如地图工具,地图符号,地图导航器等等。它可以让开发者自由组合各种地理空间组件,以达到用户所需的功能和体验,从而满足各种地理空间应用的需求。 ArcGIS Engine C++可以采用多种不同的方法开发,包括使用Esri提供的API和开发工具,或使用第三方的开发工具。当开发ArcGIS Engine C++应用程序时,可以使用ArcGIS Desktop应用程序中所使用的相同的技术和工具。同时,它可以与多种编程语言和开发工具集成,可以使开发者与其他编程领域的开发人员进行协同作业,同时也可以轻松地实现外部与内部应用程序之间的交互和数据共享。 总之,ArcGIS Engine C++是一个功能强大的GIS开发框架,可以支持多种应用程序开发模式以及多种编程语言和工具,并提供完整的GIS解决方案。它可以让开发人员轻松快捷地开发出符合用户需求的GIS应用程序,以及实现与其他应用程序无缝衔接的数据共享和交互。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值