powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Создание анимированного гифа
3 сообщений из 3, страница 1 из 1
Создание анимированного гифа
    #38872379
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стоит задача создать в памяти анимированный гиф, представляющий из себя баннер с несколькими текстами, которые должны сменять друг друга.

Могу создать кадр с текстом, могу слепить из кадров анимашку с помощью велосипеда , но есть проблема.

Она в том, что размер файла получается великоват, вот этот цикл из 10 кадров занимает 10 кб, причем манипуляции с уменьшением размера второго и последующих кадров на размере не отражаются.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
        Dim enc As New AnimatedGifEncoder
        Dim ms As New MemoryStream
        Dim f As New Font("Verdana", 10)
        enc.Start(ms)
        enc.SetRepeat(0)
        For x As Integer = 1 To 10
            enc.SetDelay(x * 100)
            Dim objBitmap As Bitmap
            If x = 1 Then
                objBitmap = New Bitmap(200, 50)
            Else
                objBitmap = New Bitmap(20, 20)
            End If
            Using objGraphics As Graphics = Graphics.FromImage(objBitmap)
                objGraphics.DrawString(x.ToString, f, Brushes.White, 0, 0)
            End Using
            If x <> 1 Then objBitmap.MakeTransparent(Color.Black)
            enc.AddFrame(objBitmap)
        Next
        enc.Finish()
        Dim fs As New FileStream("f:\anitest.gif", FileMode.Create, FileAccess.Write)
        ms.Position = 0
        ms.CopyTo(fs)
        fs.Dispose()
        ms.Dispose()

А еще хотелось бы сделать смену текстов с анимацией (например, новый текст выползает снизу), а это еще больше усугубит проблему с размером.

Может есть более продвинутые велосипеды, нежели ngif?
...
Рейтинг: 0 / 0
Создание анимированного гифа
    #38872397
Ilya81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В WPF есть стандартные средства . Анимированные создавать им не пробовал, но по идее возможность должна быть, раз есть свойство Frames.
...
Рейтинг: 0 / 0
Создание анимированного гифа
    #38872520
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Свойство BitmapEncoder.Frames это просто IList(Of BitmapFrame). У BitmapEncoder нет ничего похожего на количество циклов а у BitmapFrame — на задержку.

А еще
авторOnly Tagged Image File Format (TIFF), Graphics Interchange Format (GIF), and Microsoft Windows Media Photo images support more than one frame.Скорее всего будет отображаться только первый кадр.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Создание анимированного гифа
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]