【问题标题】:image overlay picture from Camer_net library showing a lot of pink color来自 Camer_net 库的图像叠加图片显示了很多粉红色
【发布时间】:2017-07-06 06:17:37
【问题描述】:

我正在制作一个 Windows 窗体应用程序,在该应用程序中,我在笔记本电脑的网络摄像头流期间覆盖图像。 叠加的图像显示出荒谬的颜色。它显示出很多粉红色。我能做些什么来使叠加的图像看起来正确吗? 我正在使用 camera_Net 库连接到网络摄像头 在网络摄像头视频期间叠加图像的建议也应受到赞赏。

这是我绘制图像的代码

string filepath = @"E:\office\lux desktop app\Camera_Net-master\Camera_Net-master\Samples\CameraControlTool\water_PNG3290.png";
                    Bitmap bitmap1 = new Bitmap(filepath);
                    g.DrawImage(bitmap1, new Rectangle(400 , 0, 250, 600));

这是网络摄像头流期间图像的外观

这是叠加的原始图像

【问题讨论】:

  • 为什么两张图片的形状差别很大?
  • 因为我已经给出了叠加的图像坐标,所以它在矩形范围内,即 new Rectangle(400 , 0, 250, 600)
  • g 已经在显示实时摄像机内容了吗?
  • g是c#中图形库的对象
  • 我的意思是我担心你不能简单地将图像放在另一个视频上?

标签: c# winforms bitmap directshow webcam-capture


【解决方案1】:

我认为问题在于图像本身。这是一个 .png 图像,所以我有可能是 alpha 值。背面的白色被裁剪掉,但在水之间,浅蓝色值为粉红色。

我会首先尝试使用更简单的图像。像this 这样的东西。我认为这会很好。然后搜索一些更复杂的图像并尝试找到薄弱点并找到一些替代选项将图像带入摄像头。

【讨论】:

  • 无论如何我可以用 alpha 值来调整一些东西吗?让它看起来像原来的样子?
  • 在某种程度上是的..但我尝试了许多其他不同的 png 图像,但它们往往无法正常工作。它们的边缘都有粉红色
【解决方案2】:

正如@Roman R 指出的那样, g 正确指向了不正确的背景, 问题确实出在颜色格式上,因此解决方案是根据您的图像使用正确的图像像素格式。

这是完整的代码

Bitmap bmp = new Bitmap(w, h, PixelFormat.Format32bppRgb);

            Graphics g = Graphics.FromImage(bmp);
            Image newImage;

                newImage = Properties.Resources.red_frame_03;
using (Bitmap oldBmp = new Bitmap(newImage))
            using (Bitmap newBmp = new Bitmap(oldBmp))
            using (Bitmap targetBmp = newBmp.Clone(new Rectangle(0, 0, newBmp.Width, newBmp.Height), PixelFormat.Format16bppArgb1555))

            {
                g.DrawImage(targetBmp, new Rectangle(100, 0, 350, 350));


            }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-06
    • 1970-01-01
    • 1970-01-01
    • 2020-10-08
    • 2013-08-09
    • 1970-01-01
    • 2018-05-25
    • 2013-05-19
    相关资源
    最近更新 更多