一些扭曲Distort特效也在滤镜中比较常见,而且如果在视频拍摄的时候使用则一般会比较有趣,如在Mac电脑上的PhotoBooth软件拍摄就有很多变形的Effect。这里介绍几种特效包括有:挤压(pinch)、球面特效(Spherize)、漩涡(Swirl)、波浪(Wave)等,这几个特效在PhotoSprite软件中都有代码。其他的一些变形也可以根据公式写出来,写出自己独特的一些变形特效出来。

这些特效都是对像素的位置进行改变,而不改变像素值,利用一些数学上的变换公式来进行。

原图:

l       挤压效果

代码:

 // 弧度、半径double radian, radius;for (int y = 0; y < height; y++){for (int x = 0; x < width; x++){// 当前点与图像中心点的偏移量offsetX = x - midX;offsetY = y - midY;// 弧度radian = Math.Atan2(offsetY, offsetX);// 半径radius = Math.Sqrt(offsetX * offsetX + offsetY * offsetY);radius = Math.Sqrt(radius) * degree;// 映射实际像素点X = (int)(radius * Math.Cos(radian)) + midX;Y = (int)(radius * Math.Sin(radian)) + midY;// 边界约束if (X < 0) X = 0;if (X >= width) X = width - 1;if (Y < 0) Y = 0;if (Y >= height) Y = height - 1;src = (byte*)srcScan0 + Y * stride + X * BPP;dst[3] = src[3]; // Adst[2] = src[2]; // Rdst[1] = src[1]; // Gdst[0] = src[0]; // Bdst += BPP;} // xdst += offset;} // y}

l       球面效果

代码:
// 弧度、半径double radian, radius;int midX = width / 2;
int midY = height / 2;
// Max(midX, midY)
double maxMidXY = (midX > midY ? midX : midY);for (int y = 0; y < height; y++){for (int x = 0; x < width; x++){// 当前点与图像中心点的偏移量offsetX = x - midX;offsetY = y - midY;// 弧度radian = Math.Atan2(offsetY, offsetX);// 注意,这里并非实际半径radius = (offsetX * offsetX + offsetY * offsetY) / maxMidXY;// 映射实际像素点X = (int)(radius * Math.Cos(radian)) + midX;Y = (int)(radius * Math.Sin(radian)) + midY;// 边界约束if (X < 0) X = 0;if (X >= width) X = width - 1;if (Y < 0) Y = 0;if (Y >= height) Y = height - 1;src = (byte*)srcScan0 + Y * stride + X * BPP;dst[3] = src[3]; // Adst[2] = src[2]; // Rdst[1] = src[1]; // Gdst[0] = src[0]; // Bdst += BPP;} // xdst += offset;} // y}

l       漩涡效果

代码:

 // 弧度、半径double radian, radius;for (int y = 0; y < height; y++){for (int x = 0; x < width; x++){// 当前点与图像中心点的偏移量offsetX = x - midX;offsetY = y - midY;// 弧度radian = Math.Atan2(offsetY, offsetX);// 半径,即两点间的距离radius = Math.Sqrt(offsetX * offsetX + offsetY * offsetY);// 映射实际像素点X = (int)(radius * Math.Cos(radian + swirlDegree * radius)) + midX;Y = (int)(radius * Math.Sin(radian + swirlDegree * radius)) + midY;// 边界约束if (X < 0) X = 0;if (X >= width) X = width - 1;if (Y < 0) Y = 0;if (Y >= height) Y = height - 1;src = (byte*)srcScan0 + Y * stride + X * BPP;dst[3] = src[3]; // Adst[2] = src[2]; // Rdst[1] = src[1]; // Gdst[0] = src[0]; // Bdst += BPP;} // xdst += offset;} // y}

l       波浪效果

代码:
double PI2 = Math.PI * 2.0;for (int y = 0; y < height; y++){for (int x = 0; x < width; x++){X = (int)(degree * Math.Sin(PI2 * y / 128.0)) + x;Y = (int)(degree * Math.Cos(PI2 * x / 128.0)) + y;// 边界约束if (X < 0) X = 0;if (X >= width) X = width - 1;if (Y < 0) Y = 0;if (Y >= height) Y = height - 1;src = (byte*)srcScan0 + Y * stride + X * BPP;dst[3] = src[3]; // Adst[2] = src[2]; // Rdst[1] = src[1]; // Gdst[0] = src[0]; // Bdst += BPP;} // xdst += offset;} // y}

滤镜之变形Distort特效相关推荐

  1. html文字变成汉堡插件,一组超酷汉堡包图标变形动画特效

    Hamburgers是一款效果超酷的汉堡包图标变形动画特效CSS3动画库.这组汉堡包图标动画包括18种不同的汉堡包变形动画效果,你还可以通过Sass文件来自定义你自己的汉堡包图标变形动画. 安装 你可 ...

  2. jquery回弹_创意网页DOM元素拖拽弹性反弹和变形动画特效

    这是一款非常有创意的HTML网页DOM元素拖拽弹性反弹和变形动画特效.这个特效中有两种效果:第一种是弹性模态窗口效果,第二种是弹性幻灯片效果.这两种效果均可以拖拽DOM元素,然后释放它们时生成非常震撼 ...

  3. 汉堡式折叠html,纯CSS3菜单汉堡包按钮变形动画特效

    这是一款非常有趣的纯CSS3菜单汉堡包按钮变形动画特效.该特效共有9种不同的按钮变形动画效果,这些效果都是使用CSS3帧动画完成的,效果非常的酷. 制作方法 HTML结构 该按钮变形动画使用嵌套 的H ...

  4. 汉堡式折叠html,3种超酷汉堡包菜单按钮变形动画特效

    这是一款使用CSS3和少量jQuery代码来完成的汉堡包菜单按钮变形动画特效.该特效使用CSS3 transition 和 transform 来完成变形动画效果,使用jQuery来触发按钮点击事件. ...

  5. html隐藏汉堡按钮,12种汉堡包图标按钮变形动画特效

    插件描述:这是一款使用jquery和css3制作的炫酷汉堡包按钮变形动画特效.这组特效共12种动画效果,分别是在用户点击汉堡包按钮之后,汉堡包按钮以不同的方式执行变形动画. 图标按钮变形说明 这是一款 ...

  6. unity黑白滤镜_unity游戏相机滤镜渲染后期色彩处理特效着色器Colorful FX v4.4

    unity游戏相机滤镜渲染后期色彩处理特效着色器Colorful FX v4.4,是一个可快速和自定义的后处理效果,颜色可调整. Colorful FX is a collection of high ...

  7. python 视频滤镜_Python实现PS滤镜功能之波浪特效示例

    本文实例讲述了Python实现PS滤镜功能之波浪特效.分享给大家供大家参考,具体如下: 这里用 Python 实现 PS 滤镜的波浪特效,具体效果可以参考附录说明 import numpy as np ...

  8. html图标动画效果,html5 svg炫酷图标变形动画特效

    这是一款效果非常炫酷的html5 svg炫酷图标变形动画特效.类似的效果有:html5 svg和css3超酷图标动画特效. 使用方法 1.添加一组SVG图标到你的HTML文件中. 2.通过调用new ...

  9. 巧用Photoshop滤镜打造星光灿烂特效背景(转)

    巧用Photoshop滤镜打造星光灿烂特效背景(转)[@more@] 1.打开一张风景照片,把前景色设置为黑色: 2.执行"滤镜"|"风格化"|"照亮 ...

最新文章

  1. 电子工程师要学的课程有哪些?
  2. ML 02、监督学习
  3. 《卓有成效的程序员》读书笔记
  4. 高并发的epoll+线程池,epoll在线程池内
  5. 交换机端口安全如何部署
  6. Ubuntu18.04彻底删除MySQL数据库
  7. 抽屉效果_宜家靠边,好用不贵的全格收纳抽屉使用感受
  8. 教你玩转CSS 属性选择器
  9. objective-c 语法快速过(4)
  10. mac os 10.9 mysql_MAC OSX 10.9 apache php mysql 环境配置
  11. 自适应方案比较及案例
  12. python gif_Python-字符版gif图
  13. C3P0连接池的基本配置与使用
  14. 【嵌入式模块】LCD1602LCD12864
  15. 岩土工程颗粒流软件PFC6.0技巧——按计算时间导出数据、图像及保存文件
  16. STM32——滴答定时器设置1us问题
  17. HEVC帧内预测学习(一)CTU、CU、PU、TU单元划分的理解
  18. 如何选取 android 系统上的编译工具链
  19. STM32单片机(三).STM32单片机的开发方法
  20. webots和ros2笔记08-分封

热门文章

  1. Photoshop滤镜打造线框特效美术字(转)
  2. iOS开发直播需要的准备
  3. Java经典排序算法:选择排序,动图演示排序过程
  4. 139家企业入选前程无忧2021年度中国雇主榜;帝亚吉欧投资5亿于中国兴建碳中和威士忌酒厂 | 美通社头条...
  5. Java 数据库 课设 职工工资管理系(源代码)
  6. HTML+CSS简单实现京东顶部导航栏
  7. javaIO流之转换流
  8. 防患于未“燃”的智能水气表解决方案,你心动了吗?
  9. 乐视市值是360两倍说明啥:卖水模式终结 生态战开打
  10. 基于JAVA线上甜品店售卖系统计算机毕业设计源码+系统+lw文档+部署