OpenFramework中视频或者图片进行中心旋转、平移、放大、缩小、矫正(本例以视频为准,只给出主要代码)
/********** update mesh部分***********/
for(int i=0;i<4;i++)
{
mesh[i].clear(); //重要,不加的话,移动视频的四个角出现视频的重叠
mesh[i].addVertex(ofPoint(point[i][0]->x,point[i][0]->y));
mesh[i].addVertex(ofPoint(point[i][1]->x,point[i][1]->y));
mesh[i].addVertex(ofPoint(point[i][2]->x,point[i][2]->y));
mesh[i].addTexCoord(ofPoint(0,0));
mesh[i].addTexCoord(ofPoint(LRatio,0));
mesh[i].addTexCoord(ofPoint(0,WRatio));
mesh[i].addVertex(ofPoint(point[i][1]->x,point[i][1]->y));
mesh[i].addVertex(ofPoint(point[i][2]->x,point[i][2]->y));
mesh[i].addVertex(ofPoint(point[i][3]->x,point[i][3]->y));
mesh[i].addTexCoord(ofPoint(LRatio,0));
mesh[i].addTexCoord(ofPoint(0,WRatio));
mesh[i].addTexCoord(ofPoint(LRatio,WRatio));
}
/********** draw()部分***********/
ofBackground(ofColor::black); //背景设成黑色,需要投影播放
ofSetColor(ofColor::white);
fbo.begin();//////////整体渲染的开始
ofPushMatrix();
ofClear(255); //重要,消除移动时留下重影
ofTranslate(ofGetWindowWidth()*0.5,ofGetWindowHeight()*0.5);
ofRotate(holisticRotate); //整体的旋转
ofScale(holisticScale->x,holisticScale->y); //整体的放大缩小
ofTranslate(holisticPos->x,holisticPos->y); //整体的上下左右移动
for (int i=0;i<4;i++) //分别对四个视频进行相关的操作
{
ofPushMatrix();
ofTranslate(m_video[i].width/2,m_video[i].height/2);
ofRotate(rotatePos[i]); //360度旋转
ofScale(scalePos[i]->x,scalePos[i]->y); //上下左右反转
ofTranslate(m_videoPos[i]->x,m_videoPos[i]->y);
m_video[i].bind(); //绑定视频
mesh[i].draw();
m_video[i].unbind(); //解除绑定
//mesh[i].drawWireframe(); //画边线,不去除在视频中会出现对角线
ofPopMatrix();
}
ofPopMatrix();
fbo.end();//////////整体渲染的结束
fbo.getTexture().bind();
_mesh.draw();
fbo.getTexture().unbind();
_mesh.clear(); //重要,消除整体移动时的重影
OpenFramework中视频或者图片进行中心旋转、平移、放大、缩小、矫正(本例以视频为准,只给出主要代码)的更多相关文章
- [golang]图片按中心旋转后,新图的左顶点位置的偏移量
1 前言 图片按中心旋转后,新图的左顶点位置的偏移量 2 代码 func OffsetXYAfterRotationCore(W, H, L, T, Angle float64) (x, y floa ...
- wxParse解析富文本内容使点击图片可以选中并实现放大缩小
wxParse解析富文本内容不多说,之前写过步骤介绍,主要是在使用过程中发现解析的富文本内容里有图片时有的可以点击放大缩小,有的点击却报错,找不到imgUrls. 经过排查发现:循环解析的富文本内容正 ...
- android 图片旋转 移动 放大缩小
图片的变化主要是matrix的变化,对matrix不懂的可以先了解下matrxi. public class FunnyView extends View { /* * 手指按下时可能是移动 也可能是 ...
- CSS3图片以中心缩放,放大超出隐藏实现
首页,重点是有一个包裹img标签的容器,这里我们给该容器设置一个class为selfScale <div class="selfScale"> <img sr=& ...
- IOS视图旋转可放大缩小
- (IBAction)hideBut:(id)sender { if (self.flg) { [UIView animateWithDuration:0.3 animations:^{ self. ...
- 如何使用Camtasia给视频或者图片调色
喜欢摄影过着做视频的朋友一定知道,一张好看的照片或者一段精美视频的构成因素很多,取景本身肯定是个很重要的条件,相机的素质是非常重要的硬件条件,接下来的就是后期的编辑和处理了,而在后期处理过程中调色就显 ...
- JS微信网页使用图片预览(放大缩小)
前言 需求在微信网页中客户点击图片可进行预览放大缩小功能,网上找了各种js方式实现, 唯一的麻烦就是不兼容或者和项目框架不兼容 次函数只只用于部分客户端,否则会出现 WeixinJSBridge is ...
- PyQt实现图片中心旋转
# -*- coding: cp936 -*- from PyQt4 import QtCore, QtGui, Qt class RotatePage(QtGui.QFrame): def __in ...
- JS 解决 IOS 中拍照图片预览旋转 90度 BUG
上篇博文[ Js利用Canvas实现图片压缩 ]中做了图片压缩上传,但是在IOS真机测试的时候,发现图片预览的时候自动逆时针旋转了90度.对于这个bug,我完全不知道问题出在哪里,接下来就是面向百度编 ...
随机推荐
- highcharts与highstock实例
highcharts实例代码 <head> <title>highcharts报表示例</title> <meta http-equiv="Cont ...
- 2)main函数在执行前和执行后有哪些操作
main函数执行之前,主要就是初始化系统相关资源: 1. 设置栈指针 2. 初始化static静态和global全局变量,即data段的内容 3. 将未初始化部分的全局变 ...
- PowerShell 方式部署Sharepoint Solution
覆盖 Uninstall-SPSolution –Identity Caesarstone.GlobalSite.WebSite.wsp –WebApplication http://myserver ...
- 老外写的在桌面添加快捷方式(DELPHI XE5 ANDROID)
UsesAndroidapi.JNI.GraphicsContentViewText, FMX.Helpers.Android,Androidapi.JNI.JavaTypes, FMX.Platfo ...
- Python入门和基础
Python应用领域 Python可以应用于众多领域,如:数据分析.组件集成.网络服务.图像处理.数值计算和科学计算等众多领域.目前业内几乎所有大中型互联网企业都在使用Python,如:Youtube ...
- python Django 学习笔记(四)—— 使用MySQL数据库
1,下载安装MySQLdb类库 http://www.djangoproject.com/r/python-mysql/ 2,修改settings.py 配置数据属性 DATABASES = { 'd ...
- Multi-Language IDE for Professional Developers (Komodo)
Komodo is the professional IDE for major web languages, including Python, PHP, Ruby, Perl, HTML, CSS ...
- arm 基本
ARMr0-r4 传递参数与返回值r7 帧指针 指向母函数被调用子函数在栈看中的交界栈帧指针(Frame Pointer).指向前一个保存的栈帧(stack frame)和链接寄存器(link reg ...
- Win8.1想要卸载openSUSE出现问题(2014.8.15已解决)
用DiskGenius激活C盘后果然好用了!随便用EasyBCD恢复一下就好了 下面再说说安装openSUSE这半周多的问题: 1.如果是NVIDIA和Intel双显卡就不要安装NVIDIA的显卡驱动 ...
- DrawTool多重笔之前奏 => 通过InkAnalyzer实现图形识别
这里要介绍的是通过InkAnalyzer来实现简单图形的识别,例如圆,椭圆,正方形,三角形等,当然你也可以通过扩展来实现自定义图形的识别,在使用InkAnalyzer前,你需要引用IAWinFX.dl ...