技术文章

会声会影如何制作滚动字幕

早过忘川 提交于 2021-02-20 08:55:59
滚动字幕在电影电视中都常常会使用,插播最新消息,为影片内容作简单介绍等等都用到了。如此实用的技能当然要学会,本集的会声会影教程小编打算就为大家讲解 会声会影滚动字幕 的制作教程。   操作步骤如下:   1.素材插入视频轨      图1:在轨道中插入素材   打开会声会影编辑器,在视频轨中插入一段视频素材,如图1所示。   2.将素材变形      图2:选择变形设置   展开“选项”面板,切换至“属性”选项卡,选中“变形”复选框,如图2所示。   3.调整素材与屏幕大小一致      图3:将素材调到屏幕大小   在预览窗中单击鼠标右键,执行【调整到屏幕大小】命令,如图3所示。   4.键入文字      图4:输入文字   单击“标题”按钮,切换至“标题”素材库,在预览窗口中双击鼠标左键输入字幕内容, 并调整标题轨中素材区间与视频轨中的区间长度相同,如图4所示。   5.设置文字样式      图5:设置参数   进入“选项”面板,设置“字体”,“字体大小”,并设置“颜色”,如图5所示。   6.自定义背景属性      图6:自定义背景属性   选中“文字背景”复选框,然后单击“自定义文字背景的属性”按钮,如图6所示。   7.文字背景类型设置      图7:设置背景类型   在“背景类型”中选中“单色背景栏”单选按钮,在“色彩设置”中选中“渐变”复选框,如图7所示。  

弹窗时候禁止页面滚动

你离开我真会死。 提交于 2021-02-20 08:55:36
1、依靠css 将页面 document.documentElement.style.overflow='hidden'; document.body.style.overflow='hidden';//手机版设置这个。 如果设置了如上,页面的滚动条将会消失,此时鼠标滚轮失效。 // 禁止键盘滚动页面 var move=function(e){ e.preventDefault && e.preventDefault(); e.returnValue=false; e.stopPropagation && e.stopPropagation(); return false; } var keyFunc=function(e){ if(37<=e.keyCode && e.keyCode<=40){ return move(e); } } document.body.onkeydown=keyFunc; // 一直显示滚动条 var st; var scroll=function(e){ clearTimeout(st); st=setTimeout(function(){ window.scrollTo(loc.scrollLeft,loc.scrollTop); },5); } window.onscroll=scroll; 2、建立一个函数 function

通达OA漏洞学习

被刻印的时光 ゝ 提交于 2021-02-20 08:55:10
说明 通达OA漏洞在去 年上半年已爆出,这不趁着周末没事做,将源码下载下来进行复现学习。 文件包含测试 文件包含检测, payload1: ip/ispirit/interface/gateway.php?json={"url":"/general/../../mysql5/my.ini"} 利用文件包含访问mysql.ini,检查是否有某些特定字符串 ,比如 innodb_log_group_home_dir payload2: ip/ispirit/ interface /gateway.php?json={}&url= /general/ ../../nginx/logs/oa.access.log 利用文件包含访问OA日志 复现 源码下载 链接: https: //pan.baidu.com/s/1HP5pDsAK2QLOWpnB1JX-Yg 提取码:vab0 是个exe,安装解压完是 php 代码。 用Sublime打开,都是16进制加密 用notepad打开显示,zend加密, php在线解密网站: http: //dezend.qiling.org/free.html 解密出源代码。 文件上传 ispirit/im/upload. php 要上传首先需要绕过登陆验证,在本系统中auth. php 是登陆验证的相关逻辑,但在upload. php 未修复前,如果

json.dumps、json.dump、json.loads、json.load的区别

人盡茶涼 提交于 2021-02-20 08:54:54
json 模块提供了一种很简单的方式来编码和解码JSON数据。 其中两个主要的函数是 json.dumps() 和 json.loads() 下面是如何将Python数据结构转换为json import json data = { " name " :liu, " shares " :11 } str = json.dumps(data) 下面演示如何将一个JSON编码的字符串转换回一个Python数据结构: json_data = json.loads(json_str) 如果你要处理的是文件而不是字符串,你可以使用 json.dump() 和 json.load() 来编码和解码JSON数据。例如: # writing json data with open( ' data.json ' , ' w ' ) as f : json.dump(data,f) -- 把data文件中的字典转换为json 字符串 写入到 data.json文件中 # reading json data with open( ' data.json ' , ' r ' ) as f : json.load(f) --从文件data.json中读取json字符串,转换为python数据结构例如字典 来源: oschina 链接: https://my.oschina.net/u/4274927/blog

如何在Java中逐行读取文件

帅比萌擦擦* 提交于 2021-02-20 08:54:39
本文翻译自 How to read a file line by line in Java 有时我们想逐行读取一个文件来处理内容。 一个很好的例子是 逐行读取CSV文件 ,然后将其用逗号(,)分成多列。 在Java中,当您需要逐行读取文件时,有多种选项可供选择。 1.Scanner Scanner 类提供了用Java逐行读取文件的最简单方法。 我们可以使用 Scanner 类打开文件,然后逐行读取其内容。 Scanner程序使用定界符模式将其输入分为令牌,在本例中为新行: try { // open file to read Scanner scanner = new Scanner(new File("examplefile.txt")); // read until end of file (EOF) while (scanner.hasNextLine()) { System.out.println(scanner.nextLine()); } // close the scanner scanner.close(); } catch (FileNotFoundException ex) { ex.printStackTrace(); } 如果此扫描程序的输入中有另一行而不推进文件读取位置,则 hasNextLine() 方法将返回 true 。 要读取数据并移至下一行

Java逐行读取和写入文件

故事扮演 提交于 2021-02-20 08:54:22
前言 前面两篇博客讲到 go语言逐行读取和写入文件 以及 nodejs使用readline逐行读取和写入文件 和 C#逐行读取和写入文件 今天使用Java实现同样的功能,即从输入文件中读取每行数据,然后将每行字段组合成SQL插入脚本,然后逐行写入另外一个空白文件中。 tb_param表的结构 tb_param表的结构如下: 创建表的SQL脚本如下,我使用的是Sqlite数据库 DROP TABLE IF EXISTS "main" . "tb_param" ; CREATE TABLE tb_param ( protocol INT NOT NULL , slave INT NOT NULL , number INT NOT NULL , ptype INT NOT NULL , pid INT NOT NULL , name TEXT NOT NULL , format TEXT , PRIMARY KEY ( protocol , slave , number , ptype , pid ) ) ; 前面使用 nodejs 实现从 input.txt 文件逐行读取数据,然后将每行数据拼接成如下的数据格式: INSERT INTO tb_param ( protocol , slave , number , ptype , pid , name , format ) VALUES

spring boot 2.0.3+spring cloud (Finchley)5、路由网关Spring Cloud Zuul

爷,独闯天下 提交于 2021-02-20 08:53:58
Zuul作为微服务系统的网关组件,用于构建边界服务,致力于动态路由、过滤、监控、弹性伸缩和安全。 为什么需要Zuul Zuul、Ribbon以及Eureka结合可以实现智能路由和负载均衡的功能;网关将所有服务的API接口统一聚合,统一对外暴露。外界调用API接口时,不需要知道微服务系统中各服务相互调用的复杂性,保护了内部微服务单元的API接口;网关可以做用户身份认证和权限认证,防止非法请求操作API接口;网关可以实现监控功能,实时日志输出,对请求进行记录;网关可以实现流量监控,在高流量的情况下,对服务降级;API接口从内部服务分离出来,方便做测试。 Zuul通过Servlet来实现,通过自定义的ZuulServlet来对请求进行控制。核心是一系列过滤器,可以在Http请求的发起和响应返回期间执行一系列过滤器。Zuul采取了动态读取、编译和运行这些过滤器。过滤器之间不能直接通信,而是通过RequestContext对象来共享数据,每个请求都会创建一个RequestContext对象。 Zuul生命周期如下图。 当一个客户端Request请求进入Zuul网关服务时,网关先进入”pre filter“,进行一系列的验证、操作或者判断。然后交给”routing filter“进行路由转发,转发到具体的服务实例进行逻辑处理、返回数据。当具体的服务处理完成后,最后由”post filter

Spring bean的生命周期

非 Y 不嫁゛ 提交于 2021-02-20 08:53:34
一、bean的生命周期 1.简介 Spring Bean 的生命周期在整个 Spring 中占有很重要的位置,从BeanFactory或ApplicationContext取得的实例为Singleton,也就是预设为每一个Bean的别名只能维持一个实例,而不是每次都产生一个新的对象使用Singleton模式产生单一实例,在spring中,singleton属性默认是true,只有设定为false,则每次指定别名取得的Bean时都会产生一个新的实例,Spring只帮我们管理单例模式Bean的完整生命周期,对于prototype的bean,Spring在创建好交给使用者之后则不会再管理后续的生命周期。 2.生命周期图 3.代码示例 spring 容器中的bean的完整生命周期一共分为十一步完成: 1.bean对象的实例化 2.封装属性,也就是设置properties中的属性值 3.如果bean实现了BeanNameAware,则执行setBeanName方法,也就是bean中的id值 4.如果实现BeanFactoryAware或者ApplicationContextAware ,需要设置setBeanFactory或者上下文对象setApplicationContext 5.如果存在类实现BeanPostProcessor后处理bean

Spring bean的生命周期

杀马特。学长 韩版系。学妹 提交于 2021-02-20 08:53:22
学习spring源码主框架,从源码角度开发学习Spring bean的生命周期。 spring创建bean方法 org.springframework.beans.factory.support.AbstractBeanFactory#getBean(java.lang.String, java.lang.Class<T>) public <T> T getBean(String name, Class<T> requiredType) throws BeansException { //doGetBean是获取bean的真实方法 return doGetBean(name, requiredType, null, false); } 真正执行spring创建bean方法doGetBean org.springframework.beans.factory.support.AbstractBeanFactory#doGetBean protected <T> T doGetBean( final String name, final Class<T> requiredType, final Object[] args, boolean typeCheckOnly) throws BeansException { //获取的beanname可能是重命名后的

spring bean的生命周期与springmvc的生命周期

喜夏-厌秋 提交于 2021-02-20 08:53:08
配置在Spring中的Bean在Spring容器中从加载到销毁会经历那些过程呢?如果实现一些特定的Spring接口,这些特定接口的方法会在什么时候被调用呢?本文简单介绍一下这些过程. Bean在Spring容器中的生命周期如下图所示: 1,调用Bean的构造函数(或者工厂方法)实例化Bean. 2,对Bean的成员变量赋值. 3,如果Bean实现了BeanNameAware,调用Bean的setBeanName方法. 4,如果Bean实现了BeanFactoryAware,调用Bean的setBeanFactory方法. 5,如果Bean实现了ApplicationContextAware,调用Bean的setApplicationContext方法. 6,如果容器中配置了BeanPostProcessor,调用BeanPostProcessor的postProcessBeforeInitialization方法(如果有多个BeanPostProcessor,调用每一个BeanPostProcessor的postProcessBeforeInitialization方法). 6,如果Bean实现了InitializingBean,调用Bean的afterPropertiesSet方法. 7,如果Bean配置了init-method方法,调用init-method配置的Bean方法.