Страница: 1 | 2 |
Вопрос: Плавный переход изображения
Добавлено: 07.02.05 23:22
Автор вопроса: Koss
Как можно осуществить плавный переход между двумя картинками на форме (Picturebox или Image, неважно). То есть, когда на одной картинке начинает появляться другая и в итоге все изображение переходит во вторую картинку.
Если сделать программно (получить RGB каждого пиксела каждого изображения и плавно менять с помощью таймера), то программа будет сильно тормозить (особенно при высоком разрешении 800*600 или 1024*768)!!
Если кто знает, подскажите, как решить проблему?
Ответы
Всего ответов: 16
Номер ответа: 1
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #1
Добавлено: 07.02.05 23:55
Используй AlfaBlend
Номер ответа: 2
Автор ответа:
Koss
Вопросов: 3
Ответов: 4
Профиль | | #2
Добавлено: 08.02.05 00:22
Если не сложно, расскажи как, или дай ссылку.
Номер ответа: 3
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #3
Добавлено: 08.02.05 04:16
Думается что он был в примерах... Назывался он AlphaBlend и в комментарии было следующее:
'Copyright © 2001 by Alexander Anikin
'& DREAM Interactive - QQQ
'e-mail: aka@i.com.ua
'For more my code samples visit:
'http://hotmix.narod.ru
'*************************************
Номер ответа: 4
Автор ответа:
Barsik
Разработчик Offline Client
ICQ: 343368641
Вопросов: 17
Ответов: 686
Web-сайт:
Профиль | | #4
Добавлено: 09.02.05 13:21
с AlphaBlend все получется легко.
первую картинку делаешь прозрачнее, а другую наоборот!
Номер ответа: 5
Автор ответа:
Страшный Сон
Вопросов: 46
Ответов: 848
Профиль | | #5
Добавлено: 09.02.05 13:26
Выводи изображение через байтовый массив.
Номер ответа: 6
Автор ответа:
Mihalыch
ICQ: 373-509-101
Вопросов: 56
Ответов: 330
Профиль | | #6
Добавлено: 09.02.05 15:59
Private Declare Function AlphaBlend _
Lib "msimg32" ( _
ByVal hDestDC As Long, _
ByVal x As Long, ByVal y As Long, _
ByVal nWidth As Long, _
ByVal nHeight As Long, _
ByVal hSrcDC As Long, _
ByVal xSrc As Long, _
ByVal ySrc As Long, _
ByVal widthSrc As Long, _
ByVal heightSrc As Long, _
ByVal dreamAKA As Long) _
As Long
 im Step As Long
 im nValue As Long
 im Ind As Long
Private Sub Form_Activate()
Ind = 1
Step = 1
Me.ScaleMode = 3
Me.AutoRedraw = True
Picture1.ScaleMode = 3
Picture1.Visible = False
Picture1.AutoRedraw = True
Timer1.Interval = 1
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
nValue = vbBlue - CLng(Ind) * (vbYellow + 1)
Ind = Ind + Step
If Ind = 255 Or Ind = 0 Then
Step = Step * -1
End If
Me.Cls
AlphaBlend Me.hDC, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight, Picture1.hDC, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight, nValue
End Sub
Номер ответа: 7
Автор ответа:
Koss
Вопросов: 3
Ответов: 4
Профиль | | #7
Добавлено: 10.02.05 00:19
Спасибо всем! Разобрался. AlphaBlend - действительно, отличная штука. Все работает без "тормозов" так, как и требовалось.
Номер ответа: 8
Автор ответа:
Страшный Сон
Вопросов: 46
Ответов: 848
Профиль | | #8
Добавлено: 10.02.05 14:30
Насколько я понимаю, функция AlphaBlend есть только в XP.
Номер ответа: 9
Автор ответа:
cresta
Вопросов: 117
Ответов: 1538
Профиль | | #9
Добавлено: 10.02.05 15:47
Страшный Сон
Неправильно понимаешь
Windows NT/2000/XP: Included in Windows 2000 and later.
Windows 95/98/Me: Included in Windows 98 and later.
Номер ответа: 10
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #10
Добавлено: 10.02.05 23:05
Прозрачность в 9х эмулируется копированием собственного изображения и изображения из-под формы... получается довольнозабавный эффект что используется в win2k и выше
Номер ответа: 11
Автор ответа:
Страшный Сон
Вопросов: 46
Ответов: 848
Профиль | | #11
Добавлено: 11.02.05 20:43
Тогда почему в графической оболочке Win98 AlphaBlend не используется?
Номер ответа: 12
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #12
Добавлено: 11.02.05 21:50
Из-за минимальных системных требований, которыми до выхода 2000 Microsoft озабачивались
Номер ответа: 13
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #13
Добавлено: 12.02.05 03:20
или не додумались для чего мона присобавить
Номер ответа: 14
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #14
Добавлено: 12.02.05 04:23
Да додуматься-то не проблема, могли бы вообще куда угодно засунуть, но ведь в 98 не было изначально очень уж серьезных преимуществ над Win95 OSR, поэтому юзера бы слишком больших системных требований не поняли бы и забили апдейтиться. А это деньги. Поэтому МС, скрипя сердцем, решила забить добавлять красоты
Номер ответа: 15
Автор ответа:
Станислав
Вопросов: 0
Ответов: 9
Профиль | | #15
Добавлено: 30.08.10 23:49
im Step As Long
кто ж так код то пишет? что там за смайликами?