Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 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-сайт: hw.t-k.ru
 Профиль | | #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-сайт: barsik.newmail.ru
 Профиль | | #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
  ;Dim Step As Long
  ;Dim nValue As Long
  ;Dim 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
Страшный Сон

Неправильно понимаешь :)

AlphaBlend
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-сайт: hw.t-k.ru
 Профиль | | #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-сайт: sharpc.livejournal.com
 Профиль | | #12
Добавлено: 11.02.05 21:50
Из-за минимальных системных требований, которыми до выхода 2000 Microsoft озабачивались

Ответить

Номер ответа: 13
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #13
Добавлено: 12.02.05 03:20
или не додумались для чего мона присобавить :)

Ответить

Номер ответа: 14
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #14
Добавлено: 12.02.05 04:23
Да додуматься-то не проблема, могли бы вообще куда угодно засунуть, но ведь в 98 не было изначально очень уж серьезных преимуществ над Win95 OSR, поэтому юзера бы слишком больших системных требований не поняли бы и забили апдейтиться. А это деньги. Поэтому МС, скрипя сердцем, решила забить добавлять красоты :)

Ответить

Номер ответа: 15
Автор ответа:
 Станислав



Вопросов: 0
Ответов: 9
 Профиль | | #15 Добавлено: 30.08.10 23:49
Mihalыch пишет:
 im Step As Long

кто ж так код то пишет? что там за смайликами? ;)

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам