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"?> ...
随机推荐
- Python入门:购物车实例
product_list=[('iphone',5800), ('pro',120000), ('python book',120), ('Bike',800), ('coffe',39)] #定义商 ...
- 单台PC玩转NEUTRON(一:环境准备)
要开始从事云计算网络领域的技术研究.过去10年一直是从事传统网络相关的工作,新的事务在知识结构上还有一些差异,边学边写,作为个人总结,也共享给大家. 工欲善其事必先利其器,好的开发调测环境让人学习工作 ...
- 查询APP Store已发布过的版本记录
1.国内APP使用 酷传 搜索,即可查询到版本记录 2.国外的APP 无法通过国内软件进行搜索,可在App store中直接查询.步骤如下:
- 加密算法:DigestUtils与java MessageDigest
1.使用Spring的DigestUtils public class StringUtilTest { static final String TARGET = "changeme&quo ...
- 新手教程:不写JS,在MIP页中实现异步加载数据
从需求谈起:在 MIP 页中异步加载数据 MIP(移动网页加速器) 的 加速原理 除了靠谱的 MIP-Cache CDN 加速外,最值得一提的就是组件系统.所有 JS 交互都需要使用 MIP 组件实现 ...
- Bootstrap优秀模板-INSPINIA.2.9.2
下载量最高的Bootstrap管理端模板,完美适配H5,.NET COre.MVC5.Ruby on Rails多种开发环境. 下面是官方介绍:INSPINIA Admin Theme is a pr ...
- MediatR 知多少
引言 首先不用查字典了,词典查无此词.猜测是作者笔误将Mediator写成MediatR了.废话少说,转入正题. 先来简单了解下这个开源项目MediatR(作者Jimmy Bogard,也是开源项目A ...
- eShopOnContainers 知多少[5]:EventBus With RabbitMQ
1. 引言 事件总线这个概念对你来说可能很陌生,但提到观察者(发布-订阅)模式,你也许就很熟悉.事件总线是对发布-订阅模式的一种实现.它是一种集中式事件处理机制,允许不同的组件之间进行彼此通信而又不需 ...
- H5 新特性之 fileReader 实现本地图片视频资源的预览
大家好 !! 又见面了, 今天我们来搞一搞 H5的新增API FileReader 真是一个超级超级方便的API呢!!!很多场景都可以使用.......... 我们先不赘述MDN文 ...
- MySQL安装及环境搭建
一.Windows 上安装 MySQL Windows 上安装 MySQL 相对简单,最新版本下载地址: 官网:https://dev.mysql.com/downloads/mysql/ 下载步骤: ...