• 简书网微信公众号二维码
您当前的位置: 首页 > 网站建设 > 小程序调用摄像头如何操作?

小程序调用摄像头如何操作?

时间:2023-07-01 14:05 阅读数:43 人阅读 分类:网站建设

  小程序调用摄像头如何操作?小程序如何调用摄像头呢?小程序调用摄像头的编码怎么写?下面小编就来为大家介绍一下小程序调用摄像头如何操作?

  来自:

  using System;

  using System.Collections.Generic;

  using System.ComponentModel;

  using System.Data;

  using System.Drawing;

  using System.Linq;

  using System.Text;

  using System.Windows.Forms;

  using System.Runtime.InteropServices;

  namespace WindowsFormsApplication24

  {

  public partial class Form1 : Form

  {

  public Form1()

  {

  InitializeComponent();

  }

  const short WM_CAP = 1024;

  const int WM_CAP_DRIVER_CONNECT = WM_CAP + 10;

  const int WM_CAP_DRIVER_DISCONNECT = WM_CAP + 11;

  const int WM_CAP_EDIT_COPY = WM_CAP + 30;

  const int WM_CAP_SET_PREVIEW = WM_CAP + 50;

  const int WM_CAP_SET_PREVIEWRATE = WM_CAP + 52;

  const int WM_CAP_SET_SCALE = WM_CAP + 53;

  const int WS_CHILD = 1073741824;

  const int WS_VISIBLE = 268435456;

  const short SWP_NOMOVE = 2;

  const short SWP_NOSIZE = 1;

  const short SWP_NOZORDER = 4;

  const short HWND_BOTTOM = 1;

  int iDevice = 0;

  int hHwnd;

  [System.Runtime.InteropServices.DllImport("user32", EntryPoint = "SendMessageA")]

  static extern int SendMessage(int hwnd, int wMsg, int wParam, [MarshalAs(UnmanagedType.AsAny)]

  object lParam);

  [System.Runtime.InteropServices.DllImport("user32", EntryPoint = "SetWindowPos")]

  static extern int SetWindowPos(int hwnd, int hWndInsertAfter, int x, int y, int cx, int cy, int wFlags);

  [System.Runtime.InteropServices.DllImport("user32")]

  static extern bool DestroyWindow(int hndw);

  [System.Runtime.InteropServices.DllImport("avicap32.dll")]

  static extern int capCreateCaptureWindowA(string lpszWindowName, int dwStyle, int x, int y, int nWidth, short nHeight, int hWndParent, int nID);

  [System.Runtime.InteropServices.DllImport("avicap32.dll")]

  static extern bool capGetDriverDescriptionA(short wDriver, string lpszName, int cbName, string lpszVer, int cbVer);

  private void OpenPreviewWindow()

  {

  int iHeight = 320;

  int iWidth = 200;

  //

  // Open Preview window in picturebox

  //

  hHwnd = capCreateCaptureWindowA(iDevice.ToString(), (WS_VISIBLE | WS_CHILD), 0, 0, 640, 480, picCapture.Handle.ToInt32(), 0);

  //

  // Connect to device

  //

  if (SendMessage(hHwnd, WM_CAP_DRIVER_CONNECT, iDevice, 0) == 1)

  {

  //

  // Set the preview scale

  //

  SendMessage(hHwnd, WM_CAP_SET_SCALE, 1, 0);

  //

  // Set the preview rate in milliseconds

  //

  SendMessage(hHwnd, WM_CAP_SET_PREVIEWRATE, 66, 0);

  //

  // Start previewing the image from the camera

  //

  SendMessage(hHwnd, WM_CAP_SET_PREVIEW, 1, 0);

  //

  // Resize window to fit in picturebox

  //

  SetWindowPos(hHwnd, HWND_BOTTOM, 0, 0, iWidth, iHeight, (SWP_NOMOVE | SWP_NOZORDER));

  }

  else

  {

  //

  // Error connecting to device close window

  //

  DestroyWindow(hHwnd);

  }

  }

  private void ClosePreviewWindow()

  {

  //

  // Disconnect from device

  //

  SendMessage(hHwnd, WM_CAP_DRIVER_DISCONNECT, iDevice, 0);

  //

  // close window

  //

  DestroyWindow(hHwnd);

  }

  private void button1_Click(object sender, EventArgs e)

  {

  iDevice = int.Parse(device_number_textBox.Text);

  OpenPreviewWindow();

  }

  }

  }

  picCapture为一个PictureBox

  device_number_textBox.Text=0为一个TextBox,值为0

  以上就是小编为大家整理的关于小程序调用摄像头如何操作的内容。更多更精彩的内容请持续关注小程序商店。

  相关阅读:

       微信小程序表单提交怎么弄?

       微信小程序按钮居中怎么弄?

       微信小程序导航栏返回怎么弄?