[GDI+] Faden van animated GIF dmv ColorMatrix

Pagina: 1
Acties:

  • MisterData
  • Registratie: September 2001
  • Laatst online: 06-05 16:16
In een programma dat ik heb gemaakt wil ik graag een animated GIF kunnen faden. Dit doe ik op de volgende manier (fRate is 0.0 als er geen gif te zien mag zijn en 1.0 als de bitmap volledig te zien mag zijn):

C++:
1
2
3
4
5
6
7
8
9
10
11
12
if(fRate!=0.0f&&fRate!=1.0f) {
                ColorMatrix colorMatrix ={  1.0f, 0.0f, 0.0f, 0.0f, 0.0f,
                                            0.0f, 1.0f, 0.0f, 0.0f, 0.0f,
                                            0.0f, 0.0f, 1.0f, 0.0f, 0.0f,
                                            0.0f, 0.0f, 0.0f, fRate, 0.0f,
                                            0.0f, 0.0f, 0.0f, 0.0f, 1.0f};
            
                ia.SetColorMatrix(&colorMatrix, ColorMatrixFlagsDefault,ColorAdjustTypeBitmap);
            }
            
            Rect rect(x,y,iW,iH);
            g->DrawImage(tex,rect, 0, 0, tex->GetWidth(), tex->GetHeight(), UnitPixel,&ia);


'tex' is een Bitmap waarop ik een frame heb geselecteerd op de volgende manier:

C++:
1
2
        GUID pageGuid = FrameDimensionTime;
        _bitmap->SelectActiveFrame(&pageGuid, ts->_gifPosition);


Ik weet zeker dat dat frame-kiezen goedgaat, want het werkt gewoon goed als ik niet fade. Als ik wel ga faden dan wordt het eerste frame op het scherm gezet en gefade, maar niet de frames die ik graag wil laten zien. Ik weet zeker dat ik ook in het geval van fading het goede frame heb geselecteerd. Kan GDI+ alleen maar de eerste frame bewerken met een ColorMatrix ofzo?