解决方案 »

  1.   

    截图的大小 不是你的panel 大小决定的,而是截图,保存JPG 函数决定的,查找这两个函数
      

  2.   

    一般来说采集卡的demo会提供截图的函数,并且截图是由采集卡截图,所以相关参数也是通过采集卡设置的,你可以先看看厂家提供的demo或者联系下他们。
      

  3.   

      DateTime CurTime = DateTime.Now;
                    string imgpath = "d:\\" + CurTime.ToString("yyyyMMddHHmmss");
                    SDKAPI.VCASaveAsJpegFile(0, imgpath + "dib1top.jpg", 100);sdk 提供的函数 没有设置宽高的参数 
    他倒是还有一种回调的函数 截图设置 
    但是程序运行过程中 执行不到这个
                SDKAPI.PrcVidCapCallBack SnapCall = new SDKAPI.PrcVidCapCallBack(snapcallback);
                //Register the capture stream callback
                SDKAPI.VCARegVidCapCallBack(0, SnapCall);snapcallback函数
     //snap callback 拍照的事件
            public static void snapcallback(int dwCard, IntPtr pbuff, int dwSize)
            {            if (SnapOk == true)
                {
                    string StrPicPath;
                    DateTime CurTime = DateTime.Now;
                    StrPicPath = "d:\\" + CurTime.ToString("yyyyMMddHHmmss") + "Camera0" + ".bmp";
                    IntPtr rgb24 = new IntPtr(600 * 400 * 3);
                    SDKAPI.CaptureFileAsBmp(StrPicPath, pbuff, rgb24, 600, 400);
                    // SDKAPI.VCAPauseCapture(0);
                    SnapOk = false;
                    RecOk = 0;
                    haha = "nwidth" + nWidth + "height:" + nHeight;
                }
            }
      

  4.   

     string StrPicPath;
                    DateTime CurTime = DateTime.Now;
                    StrPicPath = "d:\\" + CurTime.ToString("yyyyMMddHHmmss") + "Camera0" + ".bmp";
                    IntPtr rgb24 = new IntPtr(600 * 400 * 3);
                    SDKAPI.CaptureFileAsBmp(StrPicPath, pbuff, rgb24, 600, 400);你就直接调用SDKAPI.CaptureFileAsBmp()函数进行截图试试。
      

  5.   

    SDKAPI.VCASaveAsJpegFile()保存JPEG格式图片;SDKAPI.CaptureFileAsBmp()保存Bmp格式图片;你把保存JPEG的的操作用保存Bmp操作替换掉。
      

  6.   

     SDKAPI.CaptureFileAsBmp(StrPicPath, pbuff, rgb24, 600, 400);
    在执行这个的时候 提示    
    尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
     
    他原来这个sdk是c++ 的 不太懂 
    BOOL __declspec(dllimport) CaptureFileAsBmp(LPCTSTR szFileName,
    BYTE *pYUVBuffer,
    BYTE *pRGBBuffer,
    long nWidth,
    long nHeight);
    原型是这样  不晓得*pYUVBuffer,*pRGBBuffer该怎么替换
      

  7.   

    第一次执行 SDKAPI.CaptureFileAsBmp(StrPicPath, pbuff, rgb24, 600, 400);是否报错?存储图片的目录下是否已经有了StrPicPath同名的文件,或者保存单位图片正在被占用?图片保存是否需要关闭,尝试添加后面的代码
                  // SDKAPI.VCAPauseCapture(0);
                    SnapOk = false;
                    RecOk = 0;
                    haha = "nwidth" + nWidth + "height:" + nHeight;
      

  8.   

    或者联系厂家咨询下SDKAPI.CaptureFileAsBmp()该怎么用。