2014-07-18 48 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)