日期:2014-05-17  浏览次数:20920 次

考验大神的时候到了·····c#的大牛们··
在panel区域内有张图   图中有一条曲线   这条曲线是有颜色的(跟背景颜色不一样)  怎么根据颜色来取出这条曲线所在像素,然后在excel中显示出来····用C#语言实现·····




我描述的可能不太清楚 不过大牛呢  就帮忙啊不然这个就是我的下场

------解决方案--------------------
本帖最后由 bdmh 于 2013-11-26 15:48:30 编辑
下面是获取某个点的颜色,你遍历比对吧
Bitmap bitmap = new Bitmap(panel1.Image);
Color myColor = new Color();
myColor = bitmap.GetPixel(1, 1);
------解决方案--------------------
帖子发出后,发现那个黑白化代码似乎不够好,一是忘记释放BitmapData,二是没有都用BitmapData操作,再给一段纯粹BitmapData操作的代码:
        /// <summary>
        /// 锐化
        /// </summary>
        /// <param name="b">原始Bitmap</param>
        /// <param name="val">锐化程度。取值[0,1]。值越大锐化程度越高</param>
        /// <returns>锐化后的图像</returns>
        public static Bitmap KiSharpen(Bitmap b, float val)
        {
            if (b == null)
            {
                return null;
            }

            int w = b.Width;
            int h = b.Height;

            try
            {

                Bitmap bmpRtn = new Bitmap(w, h, PixelFormat.Format24bppRgb);

                BitmapData srcData = b.LockBits(new Rectangle(0, 0, w, h), ImageLockMode.ReadOnly, PixelFormat.Format24bppRgb);
                BitmapData dstData = bmpRtn.LockBits(new Rectangle(0, 0, w, h), ImageLockMode.WriteOnly, PixelFormat.Format24bppRgb);

                unsafe
                {
                    byte* pIn = (byte*)srcData.Scan0.ToPointer();
      &