求助:摄像头拍照

y4h3z4 16天前 278

附件中的程序运行会在窗口左边显示摄像头图像,点击图像后在D盘保存一个文件1.jpg,并在右边显示该文件。

想实现的是左边的摄像头图像只显示原图像的正中间某部分,点击后显示的内容就保存为文件并显示在右边。哪位高手能帮修改一下?

上传的附件:
最新回复 (8)
  • 光庆 16天前
    0 2
    如果你能取到完整的图像数据,可以使用:gdip.bitmap().clone() 直接取出其部分图像。
  • y4h3z4 16天前
    0 3
    此楼层已删除
  • y4h3z4 16天前
    0 4
    videoDevice.NewFrame = function(sender, NewFrameEventArgs){
    	var temp = NewFrameEventArgs.Frame.Clone();
    	if (pictureBox1.Image != null){pictureBox1.Image.Dispose();}
    
    /*以下裁剪显示不成功
    	var width = temp.Width;
        var height = temp.Height;
        var cropX = width / 4;
        var cropY = height / 4;
        var cropWidth = width / 2;
        var cropHeight = height / 2;
        // 裁剪中间部分图像
        var croppedImage = gdip.snap(temp, cropX, cropY, cropWidth, cropHeight);
        pictureBox1.Image = croppedImage;
    */
    
        pictureBox1.Image = temp;
    }

    只要裁剪就不能显示了

  • 光庆 16天前
    0 5
    y4h3z4 videoDevice.NewFrame = function(sender, NewFrameEventArgs){ var&nbs ...
    我不懂你这里面的temp是什么,但建议你重点看看gdip.snap是不是支持操作temp。
  • y4h3z4 16天前
    0 6
    temp应该是摄像头视频的一帧。注释掉那一段的最后两行就是打算用gdip.snap,但是没有效果。
  • y4h3z4 5天前
    0 7
    原来要求看来是解决不了。 能不能在摄像头预览的自定义控件显示一个红色矩形框,作为后面截图的标准?
  • 光庆 5天前
    0 8
    y4h3z4 原来要求看来是解决不了。 能不能在摄像头预览的自定义控件显示一个红色矩形框,作为后面截图的标准?

    我电脑上没有摄像头,没法测试,没法帮你了。看谁有摄像头的测试一下。

  • 瞌睡蟲子 3天前
    0 9

    var ms = ..System.IO.System.MemoryStream(); 

    pictureBox1.Image.Save(ms,..System.Drawing.Imaging.ImageFormat.jpeg); 

    imgData =  tostring(ms.ToArray());

返回