canvas进阶——实现静态图像的变形并合成动态效果

本文介绍了如何使用canvas结合贝塞尔曲线实现静态图像的变形,并将其转换为动态效果。通过分析变形思路,包括图像拆分、移位和合并,详细讲解了动态效果的生成过程。此外,讨论了两种动态效果合成方法的优缺点,并提供相关canvas教程链接。
摘要由CSDN通过智能技术生成

写在最前

在之前的这篇bezierMaker.js——N阶贝塞尔曲线生成器的文章中我们提到了对于高阶贝塞尔公式的绘制与生成。不过更多的童鞋看到后可能会不知道其使用场景是什么。故作者本次分享一下基于bezierMaker.js实现的将静态图片按照自定义曲线轨迹扭曲图片并合称为动态效果。

欢迎关注我的博客,不定期更新中——

效果预览

之前的描述可能不是很清楚我们直接看下效果图:

首先加载一张图:
image

然后通过bezierMaker.js提供的试验场功能来绘制一段曲线,进行图片扭曲:
image

最后拟合为动态图:

2018-01-19 12_40_32

再来一个竖直方向的扭动:

anmate

demo地址

源码地址

图像变形实现思路

  1. 绘制一条由bezierMaker.js生成的贝塞尔曲线,以此来掌握曲线各点的准确坐标值
  2. 确定扭曲方向为横向或纵向
  3. 根据该方向的基准线(图中的灰色线)来计算本次绘制的曲线与基准对比的偏移量,按照该方向每隔1px记录一个值
  4. 将图像数据按照选定方向进行切分,将一个一维数组imgData.data变为一段一段有方向的二维数组
  5. 将每段数组按照之前
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值