hola fijate si es asi lo que buscas

es casi el mismo metodo que use con el DrawTextReflection
Option Explicit
'-----------------------------'
'Autor: Leandro Ascierto
'web: www.leandroascierto.com.ar
'Fecha: 12/02/2010
'-----------------------------'
Private Declare Function AlphaBlend Lib "msimg32.dll" (ByVal hdc As Long, ByVal lInt As Long, ByVal lInt As Long, ByVal lInt As Long, ByVal lInt As Long, ByVal hdc As Long, ByVal lInt As Long, ByVal lInt As Long, ByVal lInt As Long, ByVal lInt As Long, ByVal BLENDFUNCT As Long) As Long
Private Declare Function CreateCompatibleDC Lib "GDI32.dll" (ByVal hdc As Long) As Long
Private Declare Function SelectObject Lib "GDI32.dll" (ByVal hdc As Long, ByVal hObject As Long) As Long
Private Declare Function DeleteDC Lib "GDI32.dll" (ByVal hdc As Long) As Long
Private Declare Sub RtlMoveMemory Lib "Kernel32.dll" (Destination As Any, Source As Any, ByVal Length As Long)
Private Declare Function BitBlt Lib "GDI32.dll" (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 dwRop As Long) As Long
Private Declare Function MulDiv Lib "Kernel32.dll" (ByVal nNumber As Long, ByVal nNumerator As Long, ByVal nDenominator As Long) As Long
Private Declare Function GetDeviceCaps Lib "GDI32.dll" (ByVal hdc As Long, ByVal nIndex As Long) As Long
Private Type BLENDFUNCTION
BlendOp As Byte
BlendFlags As Byte
SourceConstantAlpha As Byte
AlphaFormat As Byte
End Type
Private Const LOGPIXELSX As Long = 88 ' Logical pixels/inch in X
Private Const LOGPIXELSY As Long = 90 ' Logical pixels/inch in Y
Private Const HimetricInch As Long = 2540
Public Function DrawPicReflection(ByVal DestDC As Long, ByVal Left As Long, ByVal Top As Long, ByVal SrcPic As StdPicture, Optional Alpha As Byte)
Dim BF As BLENDFUNCTION, lBF As Long
Dim i As Long
Dim Percent As Single
Dim PicWidth As Long, PicHeight As Long
Dim PicDC As Long, OldBmp As Long
Dim lngAlpha As Long
PicDC = CreateCompatibleDC(0)
OldBmp = SelectObject(PicDC, SrcPic.Handle)
PicWidth = MulDiv(SrcPic.Width, GetDeviceCaps(PicDC, LOGPIXELSX), HimetricInch)
PicHeight = MulDiv(SrcPic.Height, GetDeviceCaps(PicDC, LOGPIXELSY), HimetricInch)
BitBlt DestDC, Left, Top, PicWidth, PicHeight, PicDC, 0, 0, vbSrcCopy
For i = 0 To PicHeight
Percent = ((i * 100) / PicHeight)
lngAlpha = 255 - (255 * Percent / 100) - Alpha
BF.SourceConstantAlpha = IIf(lngAlpha > 0, lngAlpha, 0)
RtlMoveMemory lBF, BF, 4
AlphaBlend DestDC, Left, Top + PicHeight - 1 + i, PicWidth, 1, PicDC, 0, PicHeight - i, PicWidth, 1, lBF
Next
SelectObject PicDC, OldBmp
DeleteDC PicDC
End Function
Private Sub Command1_Click()
Dim StdPic As StdPicture
Set StdPic = LoadPicture("D:\Escritorio 5\Descargar Imagenes\Imagenes\18-year-old-virgin-2009-vose.jpg")
DrawPicReflection Picture1.hdc, 60, 30, StdPic, 100
End Sub
fijate que el ulitmo parametro es opcional de 0 a 255 , seria para regular la transparencia.
Saludos.