来点简单分享,今晚我突然想截取浏览器里面打开的网页,是整一个网页,怎么办额?...有两种解决方案 Firefox【推荐、高清】 gnome-web-photo ---- 使用Firefox截图 第一步:打开Firefox进入控制台 shift+F2 第二部:可以进行截图了 截取当前整个网页并下载保存...--clipboard --fullpage ---- gnome-web-photo截图 gnome-web-photo是命令行截图工具,那就得先安装喽。...gnome-web-photo -t 0 --mode=photo URL fileName.png 注意:URL为你要截取网页的链接。...要是使用桌面LinuxPC呢,推荐使用Firefox,Firefox截图很高清,简单的分享! ----
下面的示例是参考过他人分享的文章,之后本人再自行实践、调整和测试过的,希望对有这方面需求的人有所帮助。...javacv 功能 (非常多,依赖Jar就占大概有500MB),由于这里只使用到了其中 ffmpeg 这块的特性,因此也可以像下面这样排除掉无关的部分 .../** * 截取视频获得指定帧的图片 * * @param video 源视频文件 * @param picPath 截图存放路径 */...) { break; } i++; } // 截取的帧图片...srcImageWidth = srcImage.getWidth(); int srcImageHeight = srcImage.getHeight(); // 对截图进行等比例缩放
作者:冰点k https://www.jianshu.com/p/4ae6b8c7bd60 不多说废话,直接上代码 屏幕截图,亲测可用,基于Activity /** * 屏幕截图...height + navigationBarHeight); } catch (Exception e) { // 这里主要是为了兼容异形屏做的处理...,我这里的处理比较仓促,直接靠捕获异常处理 // 其实vivo oppo等这些异形屏手机官网都有判断方法 // 正确的做法应该是判断当前手机是否是异形屏,...,如果需要实现后台截图,也就是截图的时候view不在屏幕上显示,只需要把要截图的View设置成invisible就可以了。...另外再附上生成图片和保存到手机SD卡上的方法,一步到位,直接粘贴拿去就用 private static final String IMAGE_FILE_NAME_TEMPLATE = "Image%
大家好,又见面了,我是你们的朋友全栈君。...注意: 如果文件名以.png结尾时,它将保存为png文件 如果文件名没有给出,则结果被会被输出到stdout 截图保存到SD卡里再导出 $ adb shell screencap -p /sdcard/...截图保存到sdcard 2.将图片导出 3.删除sdcard中的图片 截图直接保存到电脑 $ adb shell screencap -p | sed 's/\r$//' > screen.png 执行...adb shell 将\n转换\r\n, 因此需要用sed删除多余的\r 如果直接当命令用还可以用 alias 包裝装起來: $ alias and-screencap="adb shell screencap...-p | sed 's/\r$//'" $ and-screencap > screen.png 以后就可以方便的用and-screencap > 直接将截图保存到电脑上了 (完) 发布者:全栈程序员栈长
通过颜色矩阵的乘法,我们可以对图像中的元素进行变换。 但是,如果需要对实时变化的图像进行实时处理,就不是每种图像变换的方式都可以用了。因为,实时变化的预览图像,会有帧率的压力,我们的处理一定要快。...在上一篇中,我们已经展示了Android中,通过OpenGL展示相机预览图片的方法。 这一篇主要展示,如何在预览的图片中,加入一些简单的特效。 特效概述 ?...return mEffectFilter.getColorMatrix(); } private void activeProgram() { // 将程序添加到OpenGL...在画中画的特效中,颜色矩阵接近于一个单位矩阵,只是透明度会渐渐变小。而顶点坐标的矩阵,则会随着特效动画的进程不断变化。x和y值不对增大。 ---- 以上就是一个简单的基于OpenGL的动画特效。...OpenGL动效的关键在于根据着色器的代码,插入需要变换的变量。如顶点变换矩阵和颜色变换矩阵,然后根据时间或其他参数,对矩阵进行变换,从而达到改变渲染的目的。 如有问题,欢迎指正。
Rouse 读完需要 14 分钟 速读仅需 5 分钟 之前我们一直都是在绘制简单的图形与颜色,如果是一张图片该如何通过OpenGL ES进行渲染出来呢?...OpenGL ES的渲染方式是通过纹理来绘制出图片,通过纹理将图片像素值传递到对应位置,最终渲染出来。...填充与绑定纹理 我们通过加载本地的一种图片,将其通过OpenGL 进行渲染出来。 首先我们将本地的图片转化成Bitmap。...纹理处理的方式也并不难,相信一路走下来的同学都有所体会 这也进一步说明OpenGL ES也没有很难,只是我们开始对它的使用方式不熟悉,因为它与我们正常的展示一张图片的方式完全不同,但明白它的处理方式之后...也希望能够帮助大家对OpenGL ES有一个全面的了解。 OpenGL ES 系列 Android OpenGL ES 基础原理 Android OpenGL ES 渲染模式
OpenGL ES(OpenGL for Embedded Systems)是OpenGL的嵌入式系统版本,专门设计用于移动设备、嵌入式系统和其他资源受限的环境。...与标准的OpenGL相比,OpenGL ES经过精简和优化,以适应移动设备和嵌入式系统的硬件和性能要求。 ...完整的代码如下: package com.example.opengles20 import android.app.ActivityManager import android.content.Context...import android.opengl.GLSurfaceView import androidx.appcompat.app.AppCompatActivity import android.os.Bundle....* import android.opengl.GLSurfaceView.Renderer import javax.microedition.khronos.egl.EGLConfig import
01 前言 大家好,本文是 iOS/Android 音视频专题的第五篇,该专题中 AVPlayer 项目代码将在 Github 进行托管,你可在微信公众号(GeekDev)后台回复资料 获取项目地址。...OpenGL ES 目前支持 iOS、Android、BlackBerry、bada、Linux 和 Windows。...而这些状态信息都保存在 Context 上下中,因此渲染的时候,必须创建当前环境的 Context 。在 Android 中 Context 使用 EGLContext 对象表示。...纹理坐标起始点为(0,0),(0,0) 在纹理图片的左下角,与 Android 屏幕坐标系 y 轴相反,终始于(1,1),即纹理图片的右上角。...往期内容: iOS/Android 音视频开发专题介绍 iOS/Android 音视频概念介绍 MediaCodec/OpenMAX/StageFright 介绍 使用 MediaExtractor 及
快捷键 win+shift+s 可以调用 windows 自带的截图工具。 这个工具最主要有三个优点: ① 就是可以截取任意形状。 ② 编辑时,可以借助标尺画很直的线。...③ 窗口完美包裹截图,强迫症的福音。 首先这是任意形状截取的演示。 右下角会弹出图像。 点击编辑时可以借助标尺画很直的线。...窗口截图功能可以对系统窗口的边框包裹的很好。 此外选中窗口使用 alt+PrtSc 快捷键也能截出完美的窗口图。...微信截图选中窗口的时候,可以看到会包裹一圈外围,手动调整边距不容易调好。
介绍一个jquery的插件:jcrop http://deepliquid.com/content/Jcrop.html。...源代码在此:CSDN~~ 利用这个插件基本可以做出上传图片,然后截图的功能了。 基本思路是: 1、上传图片。...(最好用非刷新的方式,例如隐藏iframe) 2、显示图片,加入jcrop操作 3、上传截图的信息,坐标点,宽高 4、后台根据信息截取图片,实际上生成一个新图 由于我的代码用CI的,所以不好整理出来~~...只上个粗糙的图吧: ?
计算球体顶点数据 我们知道OpenGL中最基本的图元是三角形,任何复杂的图形都可以分解为一个个的三角形,球体也不例外,假设球体上有“经纬度”,通过“经纬度”将球体分割为一个个的四边形,如下图: ?...在把这些四边形分割为2个三角形,所以绘制球体的关键是计算“经纬度”相交的点的坐标。...generateSphere方式就是开始介绍的顶点数据生成的方法。 地球纹理贴图 地球纹理图片如下: ?...,在OpenGL ES 绘制纹理文章中已经详细介绍,图片纹理的相关内容也可以参考此文章。...,我们经常听说的天空穹、全景(VR)球体模式和地球的绘制基本一样,只不过是相机位置的不同而已。
老 孟 一个 有态度 的程序员 ?...永远缅怀,曼巴精神 下面将会完成绘制一条线,线的颜色由应用程序确定,顶点shader代码如下: attribute vec4 vPosition; void main() { gl_Position...,存放于assets/glsl目录下,readAssetsTxt为读取assets目录下文件的公用方法。...线的绘制有3种方式: GL_LINES:俩俩组成一条直线,比如上面的4个点分别编号为1,2,3,4,1和2组成一条直线,3和4组成一条直线,如果点点个数为奇数,那么最后一个点将会抛弃。...GL_LINE_LOOP:和GL_LINE_STRIP相比多了一个最后一个点和第一个点的连线。 效果图如下: ?
这篇文章将给大家讲解如何在Android系统上基于OpenGL ES 2.0来实现相机实时图片涂鸦效果,所涂内容跟随人脸出现、消失、移动、旋转及缩放,在这里,我们假设您: 已经搭建好一个相机框架,能够获得相机的预览图像...基础知识一:OpenGL的坐标系 为方便讲解,以下只讲解二维的情况,在OpenGL使用中,我们主要会涉及到以下三个坐标系: 屏幕坐标系 屏幕坐标系就是我们手机屏幕的坐标系,以像素为单位,左上角是坐标系原点...世界坐标系 它是OpenGL内部的绘图区域的坐标系,x、y的取值范围都是-1~1,坐标原点在绘图区域的中心,见下图,假设绿色区域是一个OpenGL的绘图区域: ?...OpenGL必要的初始化: ?...Vertext Shader中平移、旋转及缩放代码的编写,本质上是套用变换矩阵 ---- 作者简介:kenneyqin(覃华峥),天天P图Android工程师
为什么要使用OpenGL ES播放视频 我们都知道Android中有VideoView控件可以直接播放视频,既简单又实用,那么为什么我们还要用OpenGL ES来播放视频呢?...那是因为使用OpenGL ES可以做更多的酷炫的动效,比如旋转视频、双指缩放视频、视频的截图、视频的录制、直播、换脸,还有类似“激萌”App里面的特效等这些都是VideoView所无法实现的,而通过OpenGL...是Android特有的类型,用于绘制视频和相机。...OpenGL ES 纹理过滤模式-glTexParameteri。...glSurfaceView.renderMode = GLSurfaceView.RENDERMODE_CONTINUOUSLY } ... } 初始化MediaPlayer并播放视频 这里我们使用Android
版本 OpenGL ES 有几个版本,对于Android系统API,会有不同的要求。...OpenGL ES版本 Android系统API OpenGL ES 1.0&1.1 Android 1.0 以上 OpenGL ES 2.0 Android 2.2以上 OpenGL ES 3.0...Android 4.3以上 OpenGL ES 3.1 Android 5.0以上 这里考虑到Android系统版本,选择OpenGL ES 2.0会是比较好。...Android上OpenGL ES基本的类 (1) GLSurfaceView OpenGL ES在Android开发上,是以GLSurfaceView为载体进行展示的(或者可以自己用SurfaceView...三、总结 OpenGL就是一个画图用的库; 在Android上,OpenGL呈现的载体是GLSurfaceView; 使用shader语言去告诉OpenGL你要干嘛(画在什么位置和填充什么颜色或者纹理)
老 孟 一个 有态度 的程序员 ?...权限 Android上打开摄像头需要camera权限,在Android 6.0及以上的版本需要动态申请权限,在`AndroidManifest.xml`中添加camera权限: android="http://schemas.android.com/apk/res/android" package="com.arvr.sample"> android:name="android.permission.CAMERA"/> ......运行后发现相机的画面是倒的,这是因为camera本身输出的预览流就是倒的,下面通过矩阵旋转解决此问题,顶点shader修改如下: attribute vec4 a_Position; attribute
而作为一名Android开发者,是时候来了解一下关于Android方面渲染方面的知识。音视频的应用都离不开OpenGL ES的处理。对于视频的高效渲染与融合操作是至关重要的。...那么这炫酷的原理实现内部都离不开OpenGL ES的高效渲染与更高级的融合处理。 多的就先不说了,现在我们就来认识一下OpenGL ES。...基本概念 Android可以通过OpenGL来支持高效的2D和3D图形,同时OpenGL是一种跨平台的图形API。其中OpenGL ES是OpenGL规范的一种形式,适用于嵌入式设备。...Android支持多种版本的OpenGL ES API: 1.0&1.1 Android1.0及以上 2.0 Android2.2及以上 3.0 Android4.3及以上 3.1 Android5.0...坐标 在Android中通过Canvas进行绘制的坐标原点是在屏幕的左上角,同时它的坐标范围都是以屏幕的宽高来定义。
什么是深度 深度就像是现实世界中物体与我们自己之间的距离,而在OpenGL中,深度是像素点(可以理解为现实世界中的物体)距离相机的距离,深度信息保存在深度缓存中,深度值越大则离相机越远。...深度测试有什么作用 在OpenGL ES中默认是不开启深度测试的,不使用深度测试的时候,先绘制较近的物体,然后绘制较远的物体,当远处的物体和近处的物体出现重叠时导致近处的物体被远处的物体遮挡,这不符合实际的现象...另外需要注意的是并不是Z的值越大深度值就越大,而是比较物体距相机的距离,启用深度测试不适用于绘制透明的物体。...启用深度测试 在OpenGL ES中默认是不开启深度测试的,开启深度测试代码如下: GLES20.glEnable(GLES20.GL_DEPTH_TEST) 在每次绘制(onDrawFrame方法)时先清楚上次的深度缓存和颜色缓存...glDepthFunc方法使用方式如下: GLES20.glDepthFunc(GLES20.GL_LESS) 在 OpenGL ES for Android 绘制立方体 中是典型的深度测试用例,通过这篇文章可以查看开启深度测试和不开启的区别
在OpenGL ES 基础原理中,我们只是对顶点做了简单的填充设置,现在我们继续对片段着色器中的颜色做自定义。...这是现有的样式,色值在片段着色器中是一个写死的值,现在我们需要将它变为动态设置的值,将这个两个三角形的颜色值设置为红、绿、蓝的混合色。也就是三角形的三个顶点,分别设置红绿蓝,颜色再从顶点向中间扩散。...,但需要注意的是它的绘制顺序,并不是简单的直接按照直接的顺序进行复用。...对应的我们就能发现,如果绘制相同的图形GL_TRIANGLE_STRIP所要加载的顶点数会更少,这样在OpenGL绘制的过程中占用的内存也就越低,所以也就更有效。...OpenGL ES 系列 Android OpenGL ES 基础原理
上文中我们已经实现了在纹理上添加滤镜的效果。这编文章就是将OpenGl和相机结合到一起。 整体流程理解 ---- ?...image.png 将Camera中得到的ImageStream由SurfaceTexture接受,并转换成OpenGL ES纹理。 创建GLSurfaceView。...在OpenGL环境下,用GLSurfaceView.Render将这个纹理绘制出来。...没有其他需要的。 设备坐标和纹理坐标之间的方向不同问题,由后面纹理的矩阵来控制就好了。 ---- SurfaceTexture 可以从图像流中捕获帧作为OpenGL ES纹理。...在OpenGL ES 2.0着色器必须使用 #extension GL_OES_EGL_image_external:require 着色器还必须使用samplerExternalOES GLSL采样器类型访问纹理
领取专属 10元无门槛券
手把手带您无忧上云