说到计算机上使用代码来处理各种图像特效,是一份太有挑战性的工作.以下涉及的所有图像效果均不是从网上复制的源码,而是本人试验数次并编写的,所以原理上会和网上的有所不同.既然说到图像了,那么我们先来看一些图像效果吧.
看了以上的效果图,是不是感觉实现起来会比较麻烦呢?No,其实上面的各种特效都只有几句代码.我们来看看我是如何写的:
'模糊
Dim B As New Bitmap(My.Resources.ss)
DSAPI.图形图像.图像特效.模糊(B, 10)
Me.BackgroundImage = B
Dim B As New Bitmap(My.Resources.ss.Width, My.Resources.ss.Height)
Using G As Graphics = Graphics.FromImage(B)
G.DrawImage(My.Resources._20071206123902233, New Rectangle(Label2.Left, Label2.Top, Label2.Width, Label2.Height), New Rectangle(0, 0, My.Resources._20071206123902233.Width, My.Resources._20071206123902233.Height), GraphicsUnit.Pixel)
End Using
DSAPI.图形图像.图像特效.色彩.调整指定图像色调为参考图像的最佳色调(B, New Bitmap(My.Resources.ss))
Label2.Location = New Point(0, 0)
Label2.Size = My.Resources.ss.Size
Label2.Image = B
'使图片只输出蓝色色调
Dim B As New Bitmap(My.Resources.ss)
DSAPI.图形图像.图像特效.色彩.保留通道(B, DSAPI.图形图像.图像特效.色彩.色彩通道.蓝)
Me.BackgroundImage = B
'使图片只输出红色色调
Dim B As New Bitmap(My.Resources.ss)
DSAPI.图形图像.图像特效.色彩.保留通道(B, DSAPI.图形图像.图像特效.色彩.色彩通道.红)
Me.BackgroundImage = B
'调整图像色相
Dim B As New Bitmap(My.Resources.ss)
DSAPI.图形图像.图像特效.色彩.调整图像色调(B, 1, 0, 0) '红绿蓝各0.0到1.0的百分比
Me.BackgroundImage = B
'调整图像亮度
Dim B As New Bitmap(My.Resources.ss)
DSAPI.图形图像.图像特效.色彩.亮度(B, 100) '范围-128到128
Me.BackgroundImage = B
'灰度
Dim B As New Bitmap(My.Resources.ss)
DSAPI.图形图像.图像特效.色彩.灰度(B)
Me.BackgroundImage = B
'黑与白
Dim B As New Bitmap(My.Resources.ss)
DSAPI.图形图像.图像特效.色彩.黑与白(B, 0)
Me.BackgroundImage = B
'反色
Dim B As New Bitmap(My.Resources.ss)
DSAPI.图形图像.图像特效.色彩.反色(B)
Me.BackgroundImage = B
是不是感觉特别容易呢?是的,用DSPI就是这么简单.需要注意一下,上述调整指定图像色调为参考图像的最佳色调的两个参数,要求两个图片尺寸相等,否则出错.以上效果可以根据自己的需要进行效果叠加,比如上一句是模糊处理,下一句是灰度处理.
其他效果
图像的旋转,这个由于过于简单,就不上图演示了,给出代码:
DSAPI.图形图像.图像特效.变形.从中心旋转(B, 90) '将图像从中心旋转90度
DSAPI.图形图像.图像特效.变形.从指定点旋转(B, New Point(10, 10), 90) '将图像从坐标(10,10)的点为中心旋转90度
DSAPI.图形图像.图像特效.变形.调整大小(B, 0.5) '将图像缩小一半
控件背景图像的动态效果
DSAPI.图形图像.图像特效.动画.淡出(Me)
DSAPI.图形图像.图像特效.动画.淡出淡入(Me, Me.BackgroundImage)
DSAPI.图形图像.图像特效.动画.淡入(Me, Me.BackgroundImage)