vb.net 教程 5-16 图像处理例子 2 半透明的图片水印
发布时间:2020-12-16 23:53:30 所属栏目:大数据 来源:网络整理
导读:图片水印有两种方法,一是读取水印的所有像素颜色,颜色上加上设置的alpha值,然后将每个像素绘制到指定的位置;二是使用颜色矩阵( 如果忘记了如何使用颜色矩阵的朋友,可以参看《 vb.net 教程 5-16 图像处理之ImageAttributes 类1 颜色矩阵1 》开始的内容
图片水印有两种方法,一是读取水印的所有像素颜色,颜色上加上设置的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 教程 目录 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |