DSAPI 3张图片实现花开动画
效果图

素材



代码
Dim B0, B1, B3 As Bitmap
Private B As Bitmap = Nothing
Private Sub Loading_Load(sender As Object, e As EventArgs) Handles MyBase.Load
B0 = My.Resources.P0.Clone
B1 = My.Resources.P1.Clone
B3 = My.Resources.P3.Clone
Me.Show()
End Sub Private Sub Play()
For I As Single = 0.1 To 1.5 Step 0.02
If Me.Disposing Then Exit Sub
MakeBg(I)
Threading.Thread.Sleep(10)
Application.DoEvents()
Next
MakeBg(1.5)
Threading.Thread.Sleep(2000)
For I As Single = 255 To 0 Step -1
If Me.Disposing Then Exit Sub
DSAPI.控件.Form窗体.透明窗体样式显示图像(Me, B, I)
Application.DoEvents()
Next
End Sub
Private Sub MakeBg(Db As Single)
Try
If B IsNot Nothing Then B.Dispose()
B = Nothing
If Db < 1.5 Then
B = B0.Clone
Using G As Graphics = Graphics.FromImage(B)
G.Clip = New Region(New Rectangle(0, 0, 625, 656))
Dim _B1 As Bitmap = New Bitmap(625, 656)
Using G2 As Graphics = Graphics.FromImage(_B1)
G2.Clip = New Region(New RectangleF(0, 0, 625, 656))
Dim W, H As Integer
Dim _B As Bitmap = MakeImg(Db)
W = (625 - _B.Width) / 2
H = (656 - _B.Height) / 2
G2.DrawImage(_B, New Rectangle(W, H, _B.Width, _B.Height), New Rectangle(0, 0, _B.Width, _B.Height), GraphicsUnit.Pixel)
_B.Dispose()
End Using
Dim _B3 As Bitmap = B1.Clone
DSAPI.图形图像.应用透明度遮罩(_B3, _B1)
_B1.Dispose()
G.DrawImage(_B3, New Rectangle(0, 0, 625, 656), New Rectangle(0, 0, 625, 656), GraphicsUnit.Pixel)
End Using
Else
B = B1.Clone
End If
DSAPI.控件.Form窗体.透明窗体样式显示图像(Me, B, 255)
Catch
End Try
End Sub Private Sub Loading_Shown(sender As Object, e As EventArgs) Handles Me.Shown
For I As Single = 0 To 255
DSAPI.控件.Form窗体.透明窗体样式显示图像(Me, B0, I)
Application.DoEvents()
If Me.Opacity = 0 Then Me.Opacity = 1
Next
Play()
Me.Close()
End Sub Private Function MakeImg(Db As Single) As Bitmap
Try
Dim W, H As Integer
W = 410 * Db
H = 431 * Db
Dim BB As New Bitmap(W, H)
Using G As Graphics = Graphics.FromImage(BB)
G.Clip = New Region(New Rectangle(0, 0, W, H))
G.DrawImage(B3, New Rectangle(0, 0, W, H), New Rectangle(0, 0, 410, 431), GraphicsUnit.Pixel)
End Using
Return BB
Catch
Return Nothing
End Try
End Function
原理:
1 缩放黑影大小,并绘制到和花图一样的图片上
2 使用黑影图作为花图的透明度遮罩,有黑影的地方不透明,其他地方透明
3 将花图绘制到灰白的花上
DSAPI 3张图片实现花开动画的更多相关文章
- Android动画:模拟开关按钮点击打开动画(属性动画之平移动画)
在Android里面,一些炫酷的动画确实是很吸引人的地方,让然看了就赏心悦目,一个好看的动画可能会提高用户对软件的使用率.另外说到动画,在Android里面支持3种动画: 逐帧动画(Frame Ani ...
- 【转】花开正当时,十四款120/128GB SSD横向评测
原文地址:http://www.expreview.com/19604-all.html SSD横评是最具消费指导意义的评测文章,也是各类热门SSD固态硬盘的决斗疆场.SSD评测在行业内已经有不少网站 ...
- WPF自动隐藏的消息框(鼠标放上去将一直显示,移开动画继续),提供normal和error两种边框。
原地址-> http://www.cnblogs.com/yk250/p/5660777.html 介绍:传统的确定,取消,OK,CANCAL之类的对话框太繁琐了,由于项目需要而诞生的仿手机式提 ...
- iOS开动画效果之──实现 pushViewController 默认动画效果
在开发中,视图切换会常常遇到,有时我们不是基于导航控制器的切换,但实际开发中,有时需要做成push效果,下面将如何实现push和pop 默认动画效果代码实例: 一.push默认动画效果 CATrans ...
- [luogu3810][bzoj3262]陌下花开【cdq分治】
题目描述 有n朵花,每朵花有三个属性:花形(s).颜色(c).气味(m),用三个整数表示.现在要对每朵花评级,一朵花的级别是它拥有的美丽能超过的花的数量.定义一朵花A比另一朵花B要美丽,当且仅Sa&g ...
- bzoj3438: 小M的作物(那年花开最小割)
3438: 小M的作物 题目:传送门 题解: 最小割标准水题(做了几天的最小割之后表示是真的水) 为什么水:博主已经做过两道基本一样的题目了... 详情参考:bzoj3894 代码: #include ...
- Python 树表查找_千树万树梨花开,忽如一夜春风来(二叉排序树、平衡二叉树)
什么是树表查询? 借助具有特殊性质的树数据结构进行关键字查找. 本文所涉及到的特殊结构性质的树包括: 二叉排序树. 平衡二叉树. 使用上述树结构存储数据时,因其本身对结点之间的关系以及顺序有特殊要求, ...
- [置顶] 使用红孩儿工具箱完成基于Cocos2d-x的简单游戏动画界面
[Cocos2d-x相关教程来源于红孩儿的游戏编程之路CSDN博客地址:http://blog.csdn.net/honghaier 红孩儿Cocos2d-X学习园地QQ3群:205100149,47 ...
- android 帧动画的实现及图片过多时OOM解决方案(一)
一,animation_list.xml中静态配置帧动画的顺序,如下: <?xml version="1.0" encoding="utf-8"?> ...
随机推荐
- java后台验证码工具
jcaptcha和kaptcha是两个比较常用的图片验证码生成工具,功能强大.kaptcha是google公司制作,Jcaptcha是CAPTCHA里面的一个比较著名的项目. Shiro 结合 kca ...
- 用Python学分析:集中与分散
散点图进阶,结合箱体图与直方图对数据形成全面的认识 描述数据集中趋势的分析量: 均值 - 全部数据的算术平均值 众数 - 一组数据中出现次数最多的变量值 中位数 - 一组数据经过顺序排列后处于中间位置 ...
- Haskell学习-高阶函数
原文地址:Haskell学习-高阶函数 高阶函数(higher-order function)就是指可以操作函数的函数,即函数可以作为参数,也可以作为返回结果.有了这两个特性,haskell可以实现许 ...
- windows&lunix下node.js实现模板化生成word文件
最近在做了一个小程序!里面有个功能就是根据用户提交的数据,自动生成一份word文档返回给用户.我也是第一次做这功能,大概思路就是先自己弄一份word模板,后台接受小程序发过来的数据,再根据这些数据将相 ...
- 游戏AI之决策结构—有限状态机/行为树(2)
目录 有限状态机 行为树 控制节点 条件节点 行为节点 装饰节点 总结 额外/细节/优化 游戏AI的决策部分是比较重要的部分,游戏程序的老前辈们留下了两种经过考验的用于AI决策的结构: 有限状态机 行 ...
- 入门系列之使用Sysdig监视您的Ubuntu 16.04系统
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由乌鸦 发表于云+社区专栏 介绍 Sysdig是一个全面的开源系统活动监控,捕获和分析应用程序.它具有强大的过滤语言和可自定义的输出,以 ...
- Docker最全教程之Go实战,墙裂推荐(十八)
前言 与其他语言相比,Go非常值得推荐和学习,真香!为什么?主要是可以直接编译成机器代码(性能优越,体积非常小,可达10来M,见实践教程图片)而且设计良好,上手门槛低.本篇主要侧重于讲解了Go语言的优 ...
- android事件分发源码分析—笔记
昨天晚上从源码角度复习了一下android的事件分发机制,今天将笔记整理下放在网上.其实说复习,也是按着<android开发艺术探索>这本书作者的思路做的笔记. 目录 事件是如何从Acti ...
- c# 接口相同方法申明使用
using System; namespace ConsoleApp1 { interface IInterface1 { void ft(); } interface IInterface2 { v ...
- linux、shell一些操作指令
1.cd $(dirname $0) shell脚本里面添加这个命令就可以进入此sh目录下,不用写绝对路径 2.strMac=`ifconfig eth0 | grep "HWaddr& ...