Autor Tema: Color conversion (RGBA,long)  (Leído 1983 veces)

0 Usuarios y 1 Visitante están viendo este tema.

cobein

  • Moderador Global
  • Gigabyte
  • *****
  • Mensajes: 348
  • Reputación: +63/-0
  • Más Argentino que el morcipan
    • Ver Perfil
Color conversion (RGBA,long)
« en: Mayo 30, 2010, 08:38:34 pm »
Una manera simple de convertir entre long, RGBA


Código: [Seleccionar]
Option Explicit

Private Type DummyLong
    DummyLong   As Long
End Type

Private Type RGBA
    Red         As Byte
    Green       As Byte
    Blue        As Byte
    Alpha       As Byte
End Type
   
Private Function AddAlpha(ByVal lColor As Long, bAlpha As Byte) As Long
    Dim tRGBA As RGBA
    tRGBA = LongToRGBA(lColor)
    tRGBA.Alpha = bAlpha
    AddAlpha = RGBAToLong(tRGBA)
End Function

Private Function RemoveAlpha(ByVal lColor As Long) As Long
    Dim tRGBA As RGBA
    tRGBA = LongToRGBA(lColor)
    tRGBA.Alpha = 0
    RemoveAlpha = RGBAToLong(tRGBA)
End Function

Private Function LongToRGBA(ByVal lColor As Long) As RGBA
    Dim tDummy As DummyLong
    tDummy.DummyLong = lColor
    LSet LongToRGBA = tDummy
End Function

Private Function RGBAToLong(ByRef tRGBA As RGBA) As Long
    Dim tDummy As DummyLong
    LSet tDummy = tRGBA
    RGBAToLong = tDummy.DummyLong
End Function

LeandroA

  • Administrador
  • Petabyte
  • *****
  • Mensajes: 1128
  • Reputación: +151/-8
    • Ver Perfil
Re:Color conversion (RGBA,long)
« Respuesta #1 en: Mayo 31, 2010, 06:58:35 am »
Intersante, no sabia que si tenes dos tipos diferentes con el mismo tamaño los podes pasar usando el = de vb