首页 文章 精选 留言 我的

精选列表

搜索[截图软件],共10010篇文章
优秀的个人博客,低调大师

CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题

编译环境准备 注:(已经安装就无需重复操作)针对CentOS其他请百度 sh 复制代码 yum -y install make gcc gcc-c++ openssl openssl-devel 安装 1.下载源码[cmake-3.16.3.tar.gz] 下载地址:https://cmake.org/download/ 2.解压到目录 如:/data0/cmake/cmake-3.16.3 3.切换到解压目录 sh 复制代码 cd /data0/cmake/cmake-3.16.3 4.配置信息 sh 复制代码 ./bootstrap --prefix=/data0/cmake 5.编译并安装 sh 复制代码 make && make install 6.配置环境变量 打开文件: sh 复制代码 vi /etc/profile 输入: sh 复制代码 # CMAKE export CMAKE_HOME=/data0/cmake export PATH=$CMAKE_HOME/bin:$PATH 保存并退出 sh 复制代码 :x 让配置马上生效 sh 复制代码 source /etc/profile 7.查看版本 sh 复制代码 cmake -version

优秀的个人博客,低调大师

CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题

编译环境准备 注:(已经安装就无需重复操作)针对CentOS其他请百度 sh 复制代码 yum -y install bzip2 make gcc gcc-c++ 编译安装 1.下载源码 [gcc-9.2.0.tar.gz] 下载地址:https://mirrors.cnnic.cn/gnu/gcc 2.解压到目录 如:/data0/cmake/gcc-9.2.0 3.切换到解压目录 sh 复制代码 cd /data0/cmake/gcc-9.2.0 4.下载必要配置信息 sh 复制代码 ./contrib/download_prerequisites 5.创建编译文件夹并预编译 sh 复制代码 mkdir build && cd build && ../configure --prefix=/data0/gcc -enable-checking=release -enable-languages=c,c++,objc,obj-c++ -disable-multilib --enable-bootstrap --enable-threads=posix 6.编译并安装 sh 复制代码 make -j4 && make install 注:这里的4指的是你的电脑处理器核心有几个,并且此处编译时间很长我用了近2个小时,以下是编译完成的状态 7.重启 sh 复制代码 reboot 8.备份原来的gcc sh 复制代码 mkdir -p /data0/gcc/bak && mv /usr/bin/gcc /data0/gcc/bak/gcc mv /usr/bin/g++ /data0/gcc/bak/g++ mv /usr/bin/c++ /data0/gcc/bak/c++ mv /usr/bin/cc /data0/gcc/bak/cc mv /usr/lib64/libstdc++.so.6 /data0/gcc/bak/libstdc++.so.6 9.新建gcc链接 sh 复制代码 ln -s /data0/gcc/bin/gcc /usr/bin/gcc ln -s /data0/gcc/bin/g++ /usr/bin/g++ ln -s /data0/gcc/bin/c++ /usr/bin/c++ ln -s /data0/gcc/bin/gcc /usr/bin/cc cp /data0/gcc/lib64/libstdc++.so.6.0.27 /usr/lib64 cd /usr/lib64 ln -s libstdc++.so.6.0.27 libstdc++.so.6 10.重新运行以下命令检查动态库 sh 复制代码 strings /usr/lib64/libstdc++.so.6 | grep GLIBC 11.查看gcc版本号 sh 复制代码 gcc -v

优秀的个人博客,低调大师

javacv视频截图

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34173549/article/details/82083894 package com.repast.core.tool; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import org.bytedeco.javacpp.opencv_core; import org.bytedeco.javacpp.opencv_core.IplImage; import org.bytedeco.javacv.FFmpegFrameGrabber; import org.bytedeco.javacv.Frame; import org.bytedeco.javacv.FrameGrabber.Exception; import org.bytedeco.javacv.Java2DFrameConverter; import org.bytedeco.javacv.OpenCVFrameConverter; /** * javacv * @author 周海峰 * */ public class FrameGrabberKit { public static void main(String[] args) throws Exception { System.out.println(System.getProperty("java.library.path")); try { fetchFrame("D:/video/aa.mp4", "D:/new/aa.jpg"); } catch (IOException e) { e.printStackTrace(); } } /** * 获取指定视频的帧并保存为图片至指定目录 * @param videofile 源视频文件路径 * @param framefile 截取帧的图片存放路径 * @throws Exception * @throws IOException */ public static void fetchFrame(String videofile, String framefile) throws Exception, IOException { FFmpegFrameGrabber ff = new FFmpegFrameGrabber(videofile); ff.start(); ff.getAudioChannels(); String rotate =ff.getVideoMetadata("rotate");//视频的旋转角度 int lenght = ff.getLengthInFrames(); int i = 0; Frame f = null; while (i < lenght) { // 过滤前5帧,避免出现全黑的图片,依自己情况而定 f = ff.grabFrame(); if ((i > 5) && (f.image != null)) { break; } IplImage src = null; if(null !=rotate &&rotate.length() > 1) { OpenCVFrameConverter.ToIplImage converter =new OpenCVFrameConverter.ToIplImage(); src =converter.convert(f); f =converter.convert(rotate(src, Integer.valueOf(rotate))); } doExecuteFrame(f, framefile); i++; } } public static IplImage rotate(IplImage src,int angle) { IplImage img = IplImage.create(src.height(),src.width(),src.depth(),src.nChannels()); opencv_core.cvTranspose(src,img); opencv_core.cvFlip(img,img,angle); return img; } public static void doExecuteFrame(Frame f,String targetFileName) { if (null ==f ||null ==f.image) { return; } Java2DFrameConverter converter =new Java2DFrameConverter(); BufferedImage bi =converter.getBufferedImage(f); File output =new File(targetFileName); try { ImageIO.write(bi,"jpg",output); }catch (IOException e) { e.printStackTrace(); } } } <dependency> <groupId>org.bytedeco</groupId> <artifactId>javacv-platform</artifactId> <version>1.3.1</version> </dependency>

优秀的个人博客,低调大师

android view 转Bitmap 生成截图

文章链接:https://mp.weixin.qq.com/s/FQmYfT-KYiDbp-0HzK_Hpw 项目中经常会用到分享的功能,有分享链接也有分享图片,其中分享图片有的需要移动端对屏幕内容进行截取分享,说白了就是将view 转成bitmap 再到图片分享,还有一种情况是将不可见的view 转成bitmap ,这种view是没有直接显示在界面上的,需要我们使用inflate 进行创建的view。 第一种 先看通过 DrawingCache 方法来截取普通的view,获取它的视图(Bitmap)。 private Bitmap createBitmap(View view) { view.buildDrawingCache(); Bitmap bitmap = view.getDrawingCache(); return bitmap; } 这个方法适用于view 已经显示在界面上了,可以获得view 的宽高实际大小,进而通过DrawingCache 保存为bitmap。 第二种 但是 如果要截取的view 没有在屏幕上显示完全的,例如要截取的是超过一屏的 scrollview ,通过上面这个方法是获取不到bitmap的,需要使用下面方法,传的view 是scrollview 的子view(LinearLayout)等, 当然完全显示的view(第一种情况的view) 也可以使用这个方法截取。 public Bitmap createBitmap2(View v) { Bitmap bmp = Bitmap.createBitmap(v.getWidth(), v.getHeight(), Bitmap.Config.ARGB_8888); Canvas c = new Canvas(bmp); c.drawColor(Color.WHITE); v.draw(c); return bmp; } 第三种 还有一种 是view完全没有显示在界面上,通过inflate 转化的view,这时候通过 DrawingCache 是获取不到bitmap 的,也拿不到view 的宽高,以上两种方法都是不可行的。第三种方法通过measure、layout 去获得view 的实际尺寸。 public Bitmap createBitmap3(View v, int width, int height) { //测量使得view指定大小 int measuredWidth = View.MeasureSpec.makeMeasureSpec(width, View.MeasureSpec.EXACTLY); int measuredHeight = View.MeasureSpec.makeMeasureSpec(height, View.MeasureSpec.EXACTLY); v.measure(measuredWidth, measuredHeight); //调用layout方法布局后,可以得到view的尺寸大小 v.layout(0, 0, v.getMeasuredWidth(), v.getMeasuredHeight()); Bitmap bmp = Bitmap.createBitmap(v.getWidth(), v.getHeight(), Bitmap.Config.ARGB_8888); Canvas c = new Canvas(bmp); c.drawColor(Color.WHITE); v.draw(c); return bmp; } View view = LayoutInflater.from(this).inflate(R.layout.view_inflate, null, false); //这里传值屏幕宽高,得到的视图即全屏大小 createBitmap3(view, getScreenWidth(), getScreenHeight()); 另外写了个简易的保存图片的方法,方便查看效果的。 private void saveBitmap(Bitmap bitmap) { FileOutputStream fos; try { File root = Environment.getExternalStorageDirectory(); File file = new File(root, "test.png"); fos = new FileOutputStream(file); bitmap.compress(Bitmap.CompressFormat.PNG, 90, fos); fos.flush(); fos.close(); } catch (Exception e) { e.printStackTrace(); } } github地址:https://github.com/taixiang/view2bitmap 欢迎关注我的博客:https://www.manjiexiang.cn/ 更多精彩欢迎关注微信号:春风十里不如认识你 一起学习 一起进步

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册