2014-07-18 83 views
1

改變不透明度我使用此功能在圖片框

Public Shared Function ChangeOpacity(ByVal img As Image, ByVal opacityvalue As Single) As Bitmap 
Dim bmp As New Bitmap(img.Width, img.Height) 
    Dim graphics__1 As Graphics = Graphics.FromImage(bmp) 
    Dim colormatrix As New colormatrix 
     colormatrix.Matrix33 = opacityvalue 
     Dim imgAttribute As New ImageAttributes 
     imgAttribute.SetColorMatrix(colormatrix, ColorMatrixFlag.[Default], ColorAdjustType.Bitmap) 
     graphics__1.DrawImage(img, New Rectangle(0, 0, bmp.Width, bmp.Height), 0, 0, img.Width, img.Height, _ 
     GraphicsUnit.Pixel, imgAttribute) 
     graphics__1.Dispose() 
    Return bmp 
End Function 

我使用這個命令

picturebox.Image = ChangeOpacity(picturebox.Image,0.3)

這是工作,圖片框的不透明度是消退。 但是當我嘗試這個

picturebox.Image = ChangeOpacity(picturebox.Image,1.0)

它沒有發生,畫面依然淡出我要回圖片到默認 如何解決這一問題? 非常感謝您

回答

1

加載圖像格式文件,這樣

PictureBox1.Image = Image.FromFile("C:\Documents and 
Settings\User3\Desktop\Sathish\image\calendar-icon-reportdate.png") 

,並使用電話不透明這樣

PictureBox1.Image.Dispose() 
PictureBox1.Image = ChangeOpacity(Image.FromFile("C:\Documents and 
Settings\User3\Desktop\Sathish\image\calendar-icon-reportdate.png"), 0.3) 



PictureBox1.Image.Dispose() 
PictureBox1.Image = ChangeOpacity(Image.FromFile("C:\Documents and 
Settings\User3\Desktop\Sathish\image\calendar-icon-reportdate.png"), 1) 
+0

它的工作原理!謝謝 ! – user3709879

+0

當您更改圖片框中的圖像時,您需要確保在舊圖像上調用「Dispose」! –

+0

@CodyGray現在檢查它的先生。這是正確的? – Sathish

0

ChangeOpacity()函數的第二個參數是透明度百分比或因子第一個參數中的圖片。

所以(1.0)不會改變不透明度,它會返回沒有改變的圖片。

您必須乘以先前的不透明度值才具有(1)並將圖片恢復爲默認值,或者使用默認不透明度將圖像從源重新加載到第一個參數。

在您的例子 The_Current_Opacity * Opacity_Factor = 1

0.3 * Opacity_Factor = 1

使用:picturebox.Image = ChangeOpacity(picturebox.Image, 3.3)

我寧願師(1/0.3)。它比(3.3)更準確。

下面是代碼,你可以算一算

dim OpacityPercentage as Single 
OpacityPercentage = 0.3 

'To fade out the picturebox's opacity 
picturebox1.Image = ChangeOpacity(picturebox1.Image, OpacityPercentage) 

'To return picture into default 
picturebox1.Image = ChangeOpacity(picturebox1.Image, 1/OpacityPercentage)