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
When I click the button nothing happens. What am I doing wrong here ?
I believe that the color matrix values range from 0
to 1
, so you should probably use 0.5
instead of 50
.
You might want to set the bmpPic.Image
to the value returned from your function.
Something like
Dim a As Image = bmpPic.Image
bmpPic.Image = SetImgOpacity(a, 50)
精彩评论