2013-05-03 153 views
0

我想知道如何去增加一個上下顛倒梯度反射,與此類似:透明漸變反射 - VB.NET?

iPhone Reflection

我會推論第一反射的位圖是顛倒了。然後,在Photoshop中,我會爲圖像添加一個alpha蒙版,並使用黑色/白色漸變的頂部到底部。

如何在VB.NET中添加alpha遮罩/漸變組合?我似乎無法找到任何功能。

+1

Alpha混合... – matzone 2013-05-03 16:58:10

+0

是一種方式,但我要如何做到這一點的漸變? – yttrium 2013-05-03 17:02:01

回答

0

下面是使用Bitmaps

Dim bm_src1 As Bitmap = CType(pb1.Image.Clone, Bitmap) 
Dim bm_out As New Bitmap(bm_src1.Width, bm_src1.Height) 
Using gr As Graphics = Graphics.FromImage(bm_out) 
    'Flip image 
    gr.TranslateTransform(CSng(bm_src1.Width/2), CSng(bm_src1.Height/2)) 
    gr.RotateTransform(180) 
    gr.TranslateTransform(-CSng(bm_src1.Width/2), -CSng(bm_src1.Height/2)) 
    ' Give the images alpha gradients. 
    Dim alpha As Integer 
    For x As Integer = 0 To bm_src1.Width - 1 
    For y As Integer = 0 To bm_src1.Height - 1 
     alpha = (255 * y) \ bm_src1.Height 
     Dim clr As Color = bm_src1.GetPixel(x, y) 
     clr = Color.FromArgb(alpha, clr.R, clr.G, clr.B) 
     bm_src1.SetPixel(x, y, clr) 
    Next 
    Next 
    ' Draw the images onto the result. 
    gr.DrawImage(bm_src1, 0, 0) 
End Using 
' Display the result. 
pbResult.Image = bm_out 'picturebox output 
+0

當我在PictureBox中查看此圖像時,它具有黑色背景。有什麼辦法解決這個問題嗎? 另外,我怎樣才能使它產生的新反射位圖只有原始高度的1/3,所以它反映了src的底部三分之一? – yttrium 2013-05-06 14:13:25

+0

這個問題的後半部分沒有關係。 有什麼方法可以提高性能?對於大型位圖而言,每像素繪製速度令人難以置信。 – yttrium 2013-05-06 14:28:00

+0

提前製作圖像,然後只顯示它們,如果您不需要它們的動態。 – OneFineDay 2013-05-06 17:04:48