Графика с ошибкой в ​​формате индексированного пикселя - PullRequest
0 голосов
/ 09 января 2019

хорошо, поэтому у меня есть две видеокамеры, которые использует мое программное обеспечение. Первый - это компьютерная веб-камера. когда я подключаюсь и запускаю этот код:

        Bitmap currentFrame = videoSourcePlayer.GetCurrentVideoFrame();
        Graphics g = Graphics.FromImage(currentFrame);

        g.DrawImage(currentFrame, videoSourcePlayer.imagex, videoSourcePlayer.imagey, videoSourcePlayer.imgWidth, videoSourcePlayer.imgHeight);
        pictureBox1.Image = currentFrame;
        return currentFrame;

вебкамера работает нормально. Я могу скопировать мой зум и панорамирование, просто отлично.

но когда я подключаюсь к другой камере и запускаю тот же код, я получаю эту ошибку: HResult = 0x80131500 Сообщение = Графический объект не может быть создан из изображения, имеющего индексированный формат пикселей. Источник = System.Drawing Трассировки стека: в System.Drawing.Graphics.FromImage (изображение)

поэтому я попробовал этот код:

private Bitmap CaptureScreen()
    {
        Bitmap originalBmp = videoSourcePlayer.GetCurrentVideoFrame();

        // Create a blank bitmap with the same dimensions
        Bitmap tempBitmap = new Bitmap(originalBmp.Width, originalBmp.Height);

        // From this bitmap, the graphics can be obtained, because it has the right PixelFormat
        using (Graphics g = Graphics.FromImage(tempBitmap))
        {

            g.DrawImage(originalBmp, videoSourcePlayer.imagex, videoSourcePlayer.imagey, videoSourcePlayer.imgWidth, videoSourcePlayer.imgHeight);
            pictureBox1.Image = originalBmp;
            return originalBmp;
        }
    }

этот код исправляет ошибку времени выполнения, я получаю, но избавляюсь от моего масштабирования и панорамирования. Я не знаю почему? но у меня есть функция масштабирования и панорамирования, которая работает с первым блоком кода, но не со вторым.

как исправить объект A Graphics, который нельзя создать из изображения с ошибкой во время выполнения в формате индексированного пикселя, но при этом сохранить масштаб и панорамирование?

...