Как быстро изменить изображение с эффектом затухания? - PullRequest
0 голосов
/ 13 августа 2011

Я использовал это:

Dim i1 As Bitmap = owall.Clone
    Dim i2 As New Bitmap(ChangingWP)

    Dim g As Graphics = Graphics.FromImage(i1)

    Dim cm As New Imaging.ColorMatrix(New Single()() { _
                                                     New Single() {1, 0, 0, 0, 0}, _
                                                     New Single() {0, 1, 0, 0, 0}, _
                                                     New Single() {0, 0, 1, 0, 0}, _
                                                     New Single() {0, 0, 0, current_alpha, 0}, _
                                                     New Single() {0, 0, 0, 0, 1}})

    Dim ia As New Imaging.ImageAttributes
    ia.SetColorMatrix(cm, Imaging.ColorMatrixFlag.Default, Imaging.ColorAdjustType.Bitmap)

    g.DrawImage(i2, New Rectangle(0, 0, i2.Width, i2.Height), 0, 0, i2.Width, i2.Height, GraphicsUnit.Pixel, ia)
    g.Dispose()

    If increase Then
        current_alpha += Speed
    Else
        current_alpha -= Speed
    End If

    SetWallpaper(i1, Layout)
    If current_alpha >= 1 Then
        current_alpha = 1
        tmrBlend.Enabled = False
        SetWallpaper(ChangingWP, Layout)
    ElseIf current_alpha <= 0 Then
        current_alpha = 0
        tmrBlend.Enabled = False
    End If

Но это не быстро. У вас есть идеи? На самом деле, я пытаюсь изменить обои с эффектом исчезновения.

1 Ответ

0 голосов
/ 13 августа 2011

Как насчет изменения свойства Opacity элемента управления, отображающего изображение, вместо изменения самого изображения?

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