C# Таймер не работает при использовании анимированного gif - PullRequest
0 голосов
/ 01 августа 2020

Я занят созданием GUI, в котором должна быть какая-то анимация. Моя идея заключалась в том, чтобы использовать анимированный gif в качестве фона с элементами управления сверху. Все это работает нормально, пока я не захочу добавить таймер для обновления некоторых значений каждую секунду, тогда таймер не работает. Если я установил для включенной настройки графического окна значение false, таймер работает. Для меня это звучит как некоторые проблемы с производительностью, хотя используется 140 МБ оперативной памяти и лишь несколько процентов ЦП.

И окно с изображением, и таймер являются стандартом для Visual Studio 2019, где я программирую на C#. Анимированный gif размером 50 МБ находится в папке Systems. Windows .Forms.PictureBox. Я использовал стандартный таймер: System. Windows .Forms.Timer

Есть ли таймер, который работает в сочетании с анимированным gif? Или есть графический блок, который может обрабатывать анимированные гифки с большей производительностью? Или мне следует перейти от анимированного gif к чему-то другому?

В настоящее время код - это не что иное, как изменение текста кнопки: В настоящее время это не более чем изменение текста кнопки:

private void button1_Click(object sender, EventArgs e)
    {
        button1.Text = "1234";
    }
    private void timer1_Tick(object sender, EventArgs e)
    {
        button1.Text = "test";
    }
    private void button3_Click(object sender, EventArgs e)
    {
        timer1.Start();
    }

Настройки таймера и анимированных гифок и c находятся в пропорциях этого контейнера.

Заранее спасибо.

Редактировать: уже пытались сжать гифку, с этим изображение все еще составляет около 40 метров и имеет ту же проблему. Меньшее приведет к слишком большой потере качества. Настоящая маленькая анимированная гифка не дает проблем. Так есть ли обходной путь для использования большого анимированного gif? :)

Чтобы дать представление о том, чего я хотел бы достичь: https://motionarray.com/stock-motion-graphics/hud-video-frame-345823 Это я хотел бы использовать с кнопками и ползунками сверху.

1 Ответ

0 голосов
/ 01 августа 2020

Во-первых, я бы посоветовал попробовать сжать ваш анимированный gif. 50 МБ - это большой размер, и быстрый поиск в Google покажет вам много разных сайтов, которые уменьшат его до чего-то меньшего. Наличие gif такого размера в вашей программе вызывает проблемы с производительностью. анимация. Убедитесь, что у вас отключен таймер на вкладке «Свойства», а затем просто включите его, когда вы хотите, чтобы он начал отсчет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...