2011-02-10 100 views
2
Imports System.Drawing.Imaging 

Public Class Form1 

    Public Shared Function SetImgOpacity(ByVal imgPic As Image, ByVal imgOpac As Single) As Image 

     Dim bmpPic As New Bitmap(imgPic.Width, imgPic.Height) 
     Dim gfxPic As Graphics = Graphics.FromImage(bmpPic) 
     Dim cmxPic As New ColorMatrix() 
     Dim iaPic As New ImageAttributes() 

     cmxPic.Matrix33 = imgOpac 

     iaPic.SetColorMatrix(cmxPic, ColorMatrixFlag.[Default], ColorAdjustType.Bitmap) 
     gfxPic.DrawImage(imgPic, New Rectangle(0, 0, bmpPic.Width, bmpPic.Height), 0, 0, imgPic.Width, imgPic.Height, GraphicsUnit.Pixel, iaPic) 

     gfxPic.Dispose() 
     iaPic.Dispose() 

     Return bmpPic 

    End Function 

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
     Dim a As Image = bmpPic.Image 
     SetImgOpacity(a, 50) 
    End Sub 
End Class 

當我單擊按鈕時,什麼都沒有發生。我在這裏做錯了什麼?在更改圖像不透明度時遇到問題

+2

您可能希望將標題更改爲更具體的問題,網站上的每個問題都可能出現在您當前的標題下 – 2011-02-10 11:28:31

+0

您預期會發生什麼? bmpPic.Image是一個實際的,實例化的對象嗎? – 2011-02-10 11:30:22

回答

2

您可能希望將bmpPic.Image設置爲從函數返回的值。

喜歡的東西

Dim a As Image = bmpPic.Image   
bmpPic.Image = SetImgOpacity(a, 50) 
3

我相信,彩色矩陣值的範圍從01,所以你應該使用0.5而不是50