裁剪

android视频适配与裁剪

。_饼干妹妹 提交于 2020-03-01 20:29:31
首先说下基本背景, 当我们使用android系统原生的VideoView播放视频时, 在XML中给它设置的一个尺寸, 但最终视频开始播放后, VideoView实际的尺寸可能并不是这个尺寸设置的大小. VideoView在测量自身的尺寸时会依据视频的真实尺寸来调整自己的大小, 遵循以下规则: 1. 实际视频在VideoView上播放时所有部分都是可见的,或缩小或放大, 总之一定要全部显示出来,不会裁剪实际视频. 2. 尽量保持实际视频的长宽比例, 具体是首先以我们用户定义的长度为标准, 等比例缩放视频大小, 直到长度达到我们定义的长度, 然后宽度(等比例缩放后的宽度)与我们定义的宽比较, 大于则以我们定义的宽度为准, 这样视频会在竖直方向上压缩, 最终播放时也就不会成比例了; 小于则它以视频缩放后的宽度为准, 这样它会比我们定义的高度小,最终播放的效果是等比例的. 最近开发有如下需求: 视频等比例放大,直至一边铺满VideoView(或屏幕)的某一边,另一边超出View的另一边,再移动到View的正中央,这样长边两边会被裁剪掉同样大小的区域,视频看起来不会变形,也即是:先把视频区(实际的大小显示区)与View(定义的大小)区的两个中心点重合, 然后等比例放大或缩小视频区,直至一条边与View的一条边相等,另一条边超过View的另一条边,这时再裁剪掉超出的边,

3D坐标系、矩阵变换、视景体与裁剪

一曲冷凌霜 提交于 2019-12-05 02:46:23
背景 当前3D图形界主要有两个:微软的Direct 3D以及某组织的OpenGL。曾经一度OpenGL几乎占据所有3D图形领域,这在巨人微软面前简直就是屌丝逆袭。曾几何时微软搞IDE borland公式 倒闭了 ,后来微软搞浏览器,网景公司 解散 ,员工卷铺盖走人了,也就是说微软搞谁,谁倒霉。直到OpenGL的出现,打破了这一魔咒,在与微软竞争的前期,OpenGL几乎甩了微软几条街,并成为事实上的工业标准。后来在微软的大力绞杀下,OpenGL几乎被完全赶出了游戏领域,退居高端图形领域。基本上现在是微软的Direct 3D统治游戏领域,而OpenGL则在高端专业图形领域占绝对统治地位。微软还是微软,OpenGL已经不是以前的OpenGL了,等会。。等会。。这句话咋这么熟悉?想起来了赵本山的小品里说过:你大爷还是你大爷,你大妈已经不是你5年前的大妈了,为什么这么说呢?话说搞OpenGL的那家公司被微软逼疯了,没错。。 解散 了。。但是OpenGL并没有消失,而是交给某开源组织托管、开发与维护了。哎。。。不说了,都是泪啊。。凡是牵扯到微软,那就是一部血泪史啊。。逼疯了无数企业。。但是话有说回来,商场上比尔盖茨是个侩子手而慈善上这家伙也不小气。。大把大把的捐钱。。 坐标系空间 在OpenGL里面,3D坐标系的X轴自左向右增大,y轴自下向上增大,z轴正方向从屏幕中心指向观察者。