Tag: 剪贴板

C#中的网络摄像头使用

我正在使用C#编写一个程序来连接网络摄像头并使用它进行一些图像处理。 我有一个工作的应用程序,使用win32 api(avicap32.dll)连接到网络摄像头并向其发送消息,将其发送到剪贴板。 问题是,虽然可以从绘图中访问,但从程序中读取它会导致空指针。 这是我用来连接网络摄像头的代码: mCapHwnd = capCreateCaptureWindowA(“WebCap”, 0, 0, 0, 320, 240, 1024, 0); SendMessage(mCapHwnd, WM_CAP_CONNECT, 0, 0); SendMessage(mCapHwnd, WM_CAP_SET_PREVIEW, 0, 0); 这就是我用来将图像复制到剪贴板的方法: SendMessage(mCapHwnd, WM_CAP_GET_FRAME, 0, 0); SendMessage(mCapHwnd, WM_CAP_COPY, 0, 0); tempObj = Clipboard.GetDataObject(); tempImg = (System.Drawing.Bitmap)tempObj.GetData(System.Windows.Forms.DataFormats.Bitmap); 还有一些错误检查,我已从代码中删除它以缩短它。 提前致谢 :)

从剪贴板复制到剪贴板会丢失图像透明度

我一直在尝试将透明的PNG图像复制到剪贴板并保留其透明度,以将其粘贴到支持它的特定程序中。 我已经尝试了很多解决方案,但背景总是以这种或那种方式变灰。 所以我尝试使用Chrome复制相同的图像并将其粘贴到程序中并且它有效。 它保持了透明度。 然后我尝试从剪贴板中获取我使用Chrome复制的图像并再次设置图像,期望透明度仍然存在 – 但是,即使我刚从剪贴板中取出图像并设置它,也不会保留透明度再次。 var img = Clipboard.GetImage(); // copied using Chrome and transparency is preserved Clipboard.SetImage(img); // transparency lost 即使我使用System.Windows.Forms.Clipboard或尝试获取并设置DataObject而不是Image,也会出现同样的问题。