我在写一个截图程序(想一步写一步那种)。截图的时候首先产生一个全屏幕的半透明的窗口,然后通过鼠标选取了矩形区域,可是如何在矩形区域中显示屏幕图像呢。我的想法是想将窗体的那部分区域变成透明 ,可以百度了好久,实在没办法。希望大家不吝赐教。如果路过的高手有更好的办法,也希望能够指导我一下。谢谢!

解决方案 »

  1.   

    我觉得楼主的一个窗口挖一块的想法应该没法实现。
    个人的意见是:一开始就只有一个半透明的窗口,然后用鼠标选取一部分,已选取的这部分坐标为基础,将原来的一个半透明的窗口变成彻底透明的,然后再上面加5个label之类的东西,正好把窗口分为中间一块透明的5个矩形,然后四周的矩形继续半透明,中间的那块全透明。
    至于中间透明的那块怎么复制出来,相信有api可以解决……
      

  2.   

    哈哈,貌似好了  ,可以透明了。明天结贴散分啦 。。解决方法如下:
    form1.Transparencykey 它接受一个颜色值,当窗体中有颜色和这个设定颜色一致时,系统将这些颜色的区域设为透明。 
      

  3.   

    又遇到难题了 ,C# byte 转化为图片,怎么弄额。 
      

  4.   

    高手们,给力啊,老师教C#刚讲到 ArrayList 。我神马都不会啊,转化成图片就写完了呀,,,。我都写了两个小时啦
      

  5.   

    stream流,网上很多的,你可以搜索一下
      

  6.   

     /// <summary>
            /// 将二进制流转换成Image
            /// </summary>
            /// <param name="context"></param>
            /// <returns></returns>
            public static Image BinaryToImage(byte[] context)
            {
                Image img = null;
                if (context.Length == 0)
                {
                    return img;
                }
                else
                {
                    ImageConverter imgCvt = new ImageConverter();                object obj = imgCvt.ConvertFrom(context);
                    img = (Image)obj;
                    return img;
                }
            }
      

  7.   


    我想再问一下,然后用 Image.Save (String, ImageFormat) 可以转化成各种图片格式吗?
      

  8.   

    查一下MSDN,看一下第二个参数的含义