Модератор
4317 / 3391 / 507
Регистрация: 27.01.2014
Сообщений: 6,188
|
|
1 | |
Play, Stop, Pause, Resume, Reverse для Gif анимации на кнопке или в других объектах11.01.2015, 03:00. Показов 6679. Ответов 36
Метки нет (Все метки)
Собственно в теме все указано. Не подскажете как это реализовать? Хочу сделать красивый анимированный интерфейс на основе Gif анимации.
0
|
11.01.2015, 03:00 | |
Ответы с готовыми решениями:
36
Имитация нажатий медиаклавиш Play Pause Stop и тд Медиаплеер - не работают кнопки Stop, Play и Pause GIF Stop and Play Как сделать так чтобы в процедурах понимался этот массив- (s: Array[0.2] of string = ('Play','Stop','Pause');) |
649 / 601 / 92
Регистрация: 19.03.2012
Сообщений: 1,128
|
|
11.01.2015, 09:26 | 2 |
Yury Komar, "воспроизвести" кадры .gif в таймере не вариант?
0
|
Модератор
4317 / 3391 / 507
Регистрация: 27.01.2014
Сообщений: 6,188
|
|
11.01.2015, 10:09 [ТС] | 3 |
Nachrichter, так это мне и интересно. Нужно в любой нужный мне момент начать воспроизвеление. Остановить. Продолжить с места остановки. И неплохо еще иметт возможность их проиграть в обратном порядке. То что это крутить в таймере - само собой...
но как это делать? очень буду признателее ща помощь. Добавлено через 2 минуты Например есть гифка для кнопки с изображением книжки. На нее наводишь она открывается и останавливается. Отводишь - в обратном порядке закрывается и в таком духе.
0
|
649 / 601 / 92
Регистрация: 19.03.2012
Сообщений: 1,128
|
|||||||||||
11.01.2015, 10:36 | 4 | ||||||||||
Сообщение было отмечено Yury Komar как решение
Решение
Yury Komar, вот, как-то делал воспроизведение .gif в PictureBox'e:
2
|
Модератор
4317 / 3391 / 507
Регистрация: 27.01.2014
Сообщений: 6,188
|
|
11.01.2015, 10:55 [ТС] | 5 |
Nachrichter, оу. Спасибо огромное.самое тут главнре это возможность вытянуть конретный фрэйм. Думаю то что надо.
еще раз спасибо. Варучили Добавлено через 3 минуты Nachrichter, так как кол во фрэймов мне известно и места остановок тоже. То этот пример будет в самый раз по мне... но было б не плохо еще уметь управлять уже загпуженным изображением. Хотя наверное это решаемо загпузкой в пепеменную gifImage не файла а изоьрадение с кнопки иои формы?
0
|
649 / 601 / 92
Регистрация: 19.03.2012
Сообщений: 1,128
|
|
11.01.2015, 11:07 | 6 |
0
|
Модератор
4317 / 3391 / 507
Регистрация: 27.01.2014
Сообщений: 6,188
|
|
11.01.2015, 13:22 [ТС] | 7 |
Nachrichter, ок. Отпишусь потом. Но в теории должно.
0
|
Модератор
4317 / 3391 / 507
Регистрация: 27.01.2014
Сообщений: 6,188
|
|
11.01.2015, 18:52 [ТС] | 9 |
Памирыч, тут важна еще остановка проигрывания в нужный момент. Проигрывание в обратном порядке. Сброс, пауза и тд.
0
|
Модератор
4317 / 3391 / 507
Регистрация: 27.01.2014
Сообщений: 6,188
|
|
11.01.2015, 18:56 [ТС] | 10 |
Сообщение было отмечено Памирыч как решение
Решение
Nachrichter, Памирыч, получилось...
еще раз спасибо Nachrichter за наводку... готовый проект прилепил в пост. P.S. мне было еще очень важно чтобы анимация не проигрывалась самопроизвольно. Контроль нужен был, для этого использую свойство BackgroundImage, оно не воспроизводит GIF.
5
|
Модератор
4317 / 3391 / 507
Регистрация: 27.01.2014
Сообщений: 6,188
|
|
11.01.2015, 19:03 [ТС] | 11 |
Памирыч, у пикчура я нашел баг небольшой... если в негоивтавлена Гифка, все вроде шевелится. Но стоит вашей форме уйти на задний план, плюс стороннее окно развернуть на весь экран - анимация останавливается и не продолжается, пока программно в пукчур бокс не перегрущишь файл заново... а мой вариант решает эту проблему, так как имеется контроль показа фрэймов анимации по его порялковому номеру.
0
|
649 / 601 / 92
Регистрация: 19.03.2012
Сообщений: 1,128
|
|
11.01.2015, 20:43 | 12 |
Yury Komar, отлично получилось! Надо бы в раздел исходников этот проект добавить.
1
|
Модератор
4317 / 3391 / 507
Регистрация: 27.01.2014
Сообщений: 6,188
|
|
11.01.2015, 20:59 [ТС] | 13 |
Nachrichter, спасибо, но рано. Я его чуть доработаю потом. Хотя что там дорабатывать... добавить бегунок выбора нужного фрэйма, да отдельную кнопочку для выбора направления проигрывания "вперед/назад" чтоб понятнее был код... хотя, думаю этого достаточно и так
0
|
834 / 642 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
|
|
12.01.2015, 18:58 | 14 |
Эх.. Вот если бы из самой гифки интервалы между кадрами брать... Тем более, они разные могут быть.
0
|
1542 / 1504 / 324
Регистрация: 03.10.2012
Сообщений: 1,540
|
|
13.01.2015, 00:36 | 15 |
Средствами VB NET в метаданных гифки определяется два свойства под номерами 20736 и 20737. Но они закодированы в виде массивов байтов. Возможно, это и есть интервалы и количество фреймов. Как их правильно декодировать, думаю, надо смотреть спецификации по GIF.
Как получить метаданные.
0
|
1717 / 1204 / 228
Регистрация: 23.12.2010
Сообщений: 1,541
|
|
13.01.2015, 19:25 | 16 |
Можно попробовать определить, что это такое:
http://msdn.microsoft.com/ru-r... .110).aspx http://msdn.microsoft.com/ru-r... 34416.aspx - вот тут по поиску на странице "GIF" получим 5 свойств, начиная с PropertyTagFrameDelay ... короче, что-то похожее, т.к. связано и с временем. Не может быть так, что эти метаданные к каждому кадру имеются, а не к анимации в целом?
0
|
834 / 642 / 101
Регистрация: 20.08.2013
Сообщений: 2,524
|
|
13.01.2015, 23:45 | 17 |
Скорее всего так. Я помню, что в gimp'е для анимированных гифок задержка писалась в скобках у имён слоёв. Т. е. задержка может быть разной для разных кадров.
0
|
1717 / 1204 / 228
Регистрация: 23.12.2010
Сообщений: 1,541
|
|
14.01.2015, 09:11 | 18 |
ну это да. Проверил в ArtCursors - там можно время для каждого слайда назначить индивидуально.
0
|
Модератор
4317 / 3391 / 507
Регистрация: 27.01.2014
Сообщений: 6,188
|
|
15.01.2015, 19:45 [ТС] | 19 |
Вобщем ответ на свой вопрос я нашел и реализовал. Финальный пример во вложении. В нем именно то что я хотел сделать в своей программе. А именно при наводе мышкой на кнопку или другй элемент с картинкой, красиво и плавно проигрывалась какая то анимация, например раскрытие книжки или открытие крышки у корзины(кнопка удаления) затем при отводе мышки с нее, так же красиво и плавно закрывалась в обратном порядке... конечно можно было сделать два изображения и вызывать их соответственно, но а если книга еще не успела раскрыться и вы вдруг мышку убрали. Она б резко появлялась уже открытой и начала закрываться.
вобщем в примере все понятно. Плюс подумал что можно использовать GIF файл как контейнер для изображений, с возможность менять интерфейс, выбрав нужный, заранее скомпонованный файл, при том что размеры фрэймов могут быть разными... Добавлено через 48 секунд Юпатов Дмитрий, мне кажется что всетаки какое то свойство за задержку отвечает Добавлено через 27 минут Блин. Косяк. Не получает прикрепить файл ((
0
|
Модератор
4317 / 3391 / 507
Регистрация: 27.01.2014
Сообщений: 6,188
|
|
15.01.2015, 21:47 [ТС] | 20 |
Сообщение было отмечено Памирыч как решение
Решение
Урааа. Свершилось чудо. Я его прикрепил )))
5
|
15.01.2015, 21:47 | |
15.01.2015, 21:47 | |
Помогаю со студенческими работами здесь
20
Task. Resume & Pause Не работает pause и resume в плеере Jlayer library. Pause and Resume Pause и Resume в Parallel.Foreach Чтение файла GIF. Перевод текста в HEX. Декодирование GIF анимации Посоветуйте I/O для GIF анимации Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства
Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
|
Что такое NullReferenceException и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
|
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
|
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
|
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
|
Использование GraphQL в Go (Golang)
InfoMaster 08.01.2025
Go (Golang) является одним из наиболее популярных языков программирования, используемых для создания высокопроизводительных серверных приложений. Его архитектурные особенности и встроенные. . .
|
Что лучше использовать при создании класса в Java: сеттеры или конструктор?
Alexander-7 08.01.2025
Вопрос подробнее:
На вопрос: «Когда одновременно создаются конструктор и сеттеры в классе – это нормально?» куратор уточнил: «Ваш класс может вообще не иметь сеттеров, а только конструктор и геттеры. . .
|
Как работать с GraphQL на TypeScript
InfoMaster 08.01.2025
Введение в GraphQL и TypeScript
В современной разработке веб-приложений GraphQL стал мощным инструментом для создания гибких и эффективных API. В сочетании с TypeScript, эта технология. . .
|
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
|
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален
В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
|
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
|
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели
В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
|