vb.net 教程 5-16 图像处理例子 2 半透明的图片水印

前端之家收集整理的这篇文章主要介绍了vb.net 教程 5-16 图像处理例子 2 半透明的图片水印前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
图片水印有两种方法,一是读取水印的所有像素颜色,颜色上加上设置的alpha值,然后将每个像素绘制到指定的位置;二是使用颜色矩阵( 如果忘记了如何使用颜色矩阵的朋友,可以参看《 vb.net 教程 5-16 图像处理之ImageAttributes 类1 颜色矩阵1 》开始的内容),这也是本节所采用的方法
设计界面,这里测试使用了一个ie的图标作为图片水印:
绘制图片使用的方法Graphics.DrawImage。
具体代码
Private Sub Button2_Click(sender As Object,e As EventArgs) Handles Button2.Click
        Dim logoOpacity As Single = HScrollBar1.Value / 255
        Dim logoImg As Bitmap = PictureBox2.Image
        Dim logoLeft As Integer = 10
        Dim logoTop As Integer = 10

        Dim imgDest As Bitmap = PictureBox1.Image.Clone
        Dim g As Graphics = Graphics.FromImage(imgDest)

        Dim matrixArray()() As Single = {
              New Single() {1,0},New Single() {0,1,logoOpacity,1}}
        Dim cMatrix As New Imaging.ColorMatrix(matrixArray)
        Dim imgAttr As New Imaging.ImageAttributes()
        imgAttr.SetColorMatrix(cMatrix,Imaging.ColorMatrixFlag.Default,Imaging.ColorAdjustType.Bitmap)

        Dim recDest As New Rectangle(logoLeft,logoTop,logoImg.Width,logoImg.Height)
        g.DrawImage(logoImg,recDest,logoImg.Height,GraphicsUnit.Pixel,imgAttr)

        g.Dispose()
        PictureBox3.Image = imgDest
    End Sub
这种方法比第一种绘制像素的方法要更加简便。
下面解释一下代码
运行结果:

由于.net平台下C#和vb.NET很相似,本文也可以为C#爱好者提供参考。

学习更多vb.net知识,请参看vb.net 教程 目录

猜你在找的VB相关文章