[DSAPI.DLL下载地址]


  说到计算机上使用代码来处理各种图像特效,是一份太有挑战性的工作.以下涉及的所有图像效果均不是从网上复制的源码,而是本人试验数次并编写的,所以原理上会和网上的有所不同.既然说到图像了,那么我们先来看一些图像效果吧.


















看了以上的效果图,是不是感觉实现起来会比较麻烦呢?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)


DSAPI多功能组件编程应用-图形图像篇(中)的更多相关文章

  1. DSAPI多功能组件编程应用-HTTP监听服务端与客户端_指令版

    前面介绍了DSAPI多功能组件编程应用-HTTP监听服务端与客户端的内容,这里介绍一个适用于更高效更快速的基于HTTP监听的服务端.客户端. 在本篇,你将见到前所未有的超简化超傻瓜式的HTTP监听服务 ...

  2. DSAPI多功能组件编程应用-参考-Win32API常数

    DSAPI多功能组件编程应用-参考-Win32API常数 在编程过程中,常常需要使用Win32API来实现一些特定功能,而Win32API又往往需要使用一些API常数,百度搜索常数值,查手册,也就成了 ...

  3. DSAPI多功能组件编程应用-网络相关(上)

    [DSAPI.DLL下载地址]  DSAPI多功能组件编程应用-网络相关,网络相关编程有很多很多,这里讲解一下封装在DSAPI中的网络相关的功能,这些都是本人简化到极点的功能了,可以在软件开发过程中节 ...

  4. DSAPI多功能组件编程应用-网络相关(下)

    [DSAPI.DLL下载地址] 在本篇,我将重点介绍DSAPI.DLL中Socket编程的使用.众所周知,Socket用起来不难,但是写起来麻烦.我对Socket进行了封装,进行了高度简化.下面我将通 ...

  5. DSAPI多功能组件编程应用-网络相关(中)

    [DSAPI.DLL下载地址] 在中篇,我将演示比上篇稍微复杂点的功能.如HTTP监听和局域网广播. 有时,我们会有这样的需求:用户通过浏览器来访问获取数据,我们的程序需要监听指定端口,根据不同的请求 ...

  6. DSAPI多功能组件编程应用-文件类

    [DSAPI.DLL下载地址]     本节内容,是属于"无需过多说明"就能使用的功能.由于实在是太简单,我就简单地示例一下. DSAPI.文件类.获取可读性强的字节大小信息(&q ...

  7. DSAPI多功能组件编程应用-反射相关

    [DSAPI.DLL下载地址]       在.Net中,反射技术是一种入门困难,熟用快速的东西,对于没有接触过反射技术的程序员来说的确是头疼的,看一旦自己写过了,上手就非常简单了.在本节,将部分.N ...

  8. DSAPI多功能组件编程应用-DS提示气泡

    首先下载DSAPI.dll.并在项目中引用. 该功能包括在DSAPI1.0.1.1及更高版本号,DLL请到本人资源里查找. Private Sub Button1_Click(sender As Ob ...

  9. DSAPI多功能组件编程应用-使用外部字体(包括资源文件)

    在软件开发过程中,尤其是比较个性化的程序,有时会需要使用非安装字体文件,比如发布的时候附带了一个专用字体,或者该字体文件直接被放入项目资源,当不希望把这个字体安装到用户的操作系统但又想使用它时,本示例 ...

随机推荐

  1. Logstash导入数据到ElasticSearch

    一:在Windows环境 1 下载解压Logstash的压缩包 2 在Logstash的压缩包中安装Logstash-jdbc-input插件: 在Bin命令行下运行命令: .\logstash-pl ...

  2. 32 ArcToolBox学习系列之数据管理工具箱——属性域(Domains)的两种创建及使用方式

    属性域分为两类,一种是范围域,一种是编码的值,下面将两个一起介绍,其中涉及到的编码,名称,只是试验,并非真实情况. 一.首先新建一个文件型地理数据库,将数据导入或者是新建要素类都可以 二.打开ArcT ...

  3. phpstorm 断点调试 傻瓜教程

    前言: 简单介绍下为什么要用断点调试,很多人说我在代码调试的部位用var_dump 或者 exit 或者print_r来进行断点,但是当项目足够大的时候这样的做法就比较费时费力,因为你断点后需要删除原 ...

  4. Pycharm中配置鼠标悬停快速提示方法参数

    第一步: 第二步: 演示:

  5. [Swift]LeetCode42. 接雨水 | Trapping Rain Water

    Given n non-negative integers representing an elevation map where the width of each bar is 1, comput ...

  6. [Swift]LeetCode190. 颠倒二进制位 | Reverse Bits

    Reverse bits of a given 32 bits unsigned integer. Example 1: Input: 00000010100101000001111010011100 ...

  7. [Swift]LeetCode344. 反转字符串 | Reverse String

    Write a function that takes a string as input and returns the string reversed. Example 1: Input: &qu ...

  8. [Swift]LeetCode721. 账户合并 | Accounts Merge

    Given a list accounts, each element accounts[i] is a list of strings, where the first element accoun ...

  9. [Swift]LeetCode959. 由斜杠划分区域 | Regions Cut By Slashes

    In a N x N grid composed of 1 x 1 squares, each 1 x 1 square consists of a /, \, or blank space.  Th ...

  10. 记一次尴尬的git reset丢失分支故障

    最近...似乎一直在踩坑... 也不是什么故障,只是把一个分支的功能弄没了,之后在reflog里找到又恢复了. 产生原因是有同事错误地把分支B merge到了分支A并push. 我直接在分支A上res ...