Composer安装yii2-imagine 压缩,剪切,旋转,水印
安装:composer require --prefer-dist yiisoft/yii2-imagine 查看是否安装成功, 安装了两个目录分别是 vendor/imagine
vendor/yiisoft/yii2- 使用方法imagine
使用 引入 use yii\imagine\Image;
实例化
$imagine = new Image();
使用方法 //压缩
Image::thumbnail('@webroot/img/test-
Python的迭代器与可迭代对象
有__next__()方法的都是迭代器(Iterator), 可迭代对象(Iterable)是可用于for循环的。 集合数据类型如list、dict、str等都是可迭代对象,可以通过iter变成迭代器。 for的本质是通过__next__()方法实现的。 Iterator对象表示的是一个数据流,iterator对象可以被__next__() 方法调用并不断返回下一个数据,直到没有数据时抛出StopIteration异常。 可以把这个数据流看做是一个有序序列,但我们却不能提前知道序列的长度, 只
【案例】相对定位实现波浪效果
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>相对定位实现波浪效果</title> <style> *{ margin:0; padding:0; } li{ list-style: none; } a{ text-decoration: none; } ul{ width: 200px; height: 240=6px; margin-top: 20px; margin-left: 10px; bo
java-错误log4j:WARN No appenders could be found for logger
使用环境: 1.IED工具 idea 2.系统环境win10 错误原因: 1.根本原因是日志问题 解决方式: 1.pom文件添加jar包 <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.2</version> </dependency> <!-- https://mvnrepository.com/artifact/org.slf4j/sl
Oracle 学习笔记(十)
合并查询 在实际项目开发中经常遇到要合并结果集的情况,可以使用集合操作符:union,union all,intersect,minus。这次笔记学习这几个操作符。 【union】 该操作符用于取得两个结果集的并集。当使用该操作符时,会自动去掉结果集中重复行。 SELECT ename, sal, job FROM emp WHERE sal >2500 UNION SELECT ename, sal, job FROM emp WHERE job = 'MANAGER'; 【union al
java数组---------二分查找_折半检索
package cn.zxg.arrays2; import java.util.Arrays; /** * 测试二分查找(折半检索) */ public class TestBinarySearch { public static void main(String[] args) { int[] arr={1,20,30,5,6,90,80}; Arrays.sort(arr); System.out.println(Arrays
python模块------pyautogui
安装 pip install pyautogui
基本使用 查询 screenWidth, screenHeight = pyautogui.size() # 屏幕尺寸
mouseX, mouseY = pyautogui.position() # 返回当前鼠标位置,注意坐标系统中左上方是(0, 0)
#为了保持用户可以随时干预鼠标键盘的动作,比较好的方法是添加停顿,或者强制结束,否则想停了鼠标还一直在晃就会失控,下面是两种对应的设置
pyautogui.PAUSE = 1.5 #
git add无效,git status(modified content, untracked content)
问题一:git status 时文件目录后提示(modified content, untracked content) git add后也添加不上,文件不能提交上去 例如下图: 原因: 该文件目录下有一个.git文件,将其删除即可 问题2:删除.git后,进行git add时报错 git add 报错:fatal: in unpopulated submodule 'bugparse' 解决方法: git rm -r --cached 'bugparse' 然后再进行git add 'bug
python日常积累——字符串的方法
补充一些字符串的小操作:字符串也是一个object,所以它有自己method 所有字符串都是 str类下的object method: 1)xx.startswitch(str, beg=0,end=len(string)) 用于查找字符串是否以给定的字符串内容开头。 str -- 检测的字符串。 strbeg -- 可选参数用于设置字符串检测的起始位置。 strend -- 可选参数用于设置字符串检测的结束位置。 如果检测到字符串则返回True,否则返回False。 2)
线程的优先级 和 守护线程
一、线程优先级 1.我们先看一下线程有优先级的特点(主要的关注黄色部分) 记住当线程的优先级没有指定时,所有线程都携带普通优先级。 优先级可以用从1到10的范围指定。10表示最高优先级,1表示最低优先级,5是普通优先级。 记住优先级最高的线程在执行时被给予优先。但是不能保证线程在启动时就进入运行状态。 与在线程池中等待运行机会的线程相比,当前正在运行的线程可能总是拥有更高的优先级。 由调度程序决定哪一个线程被执行。 t.setPriority()用来设定线程的优先级。 记住在线程开始方法被调用
thinkPHP命令执行漏洞
thinkPHP中反斜杠的作用是类库\命名空间 命令执行的姿势 通过反射invokefunction调用call_user_func_array方法,call_user_func_array函数接受两个参数,第一个为函数名,第二个为函数参数数组,如下所示,通过call_user_func_array函数调用system执行whoami函数 ?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system
tensorflow gpu安装
1.cuda 按官网命令 https://developer.nvidia.com/cuda-90-download-archive?target_os=Linux&target_arch=x86_64&target_distro=CentOS&target_version=7&target_type=rpmnetwork 更改/usr/local 软链接cuda指向新路径 查看版本 cat /usr/local/cuda/version.txt 2.cudnn 下载 https://deve
PowerOJ 2828 这才是真正的签到题
水题 题目描述非常长 但就是一个求圆周率的公式就行啦 概率求圆周率 AC代码: 1 #include<bits/stdc++.h>
2 using namespace std;
3 typedef long long ll;
4 typedef unsigned long long ull;
5 int main(){
6 int t;
7 cin>>t;
8 double n, m;
9 while (scanf("%lf%l
减压Zip与创建Zip文档
压缩文档: 关于压缩等级: Fastest 使用最快的压缩方法来减少处理时间;这可能会导致更大的文件大小。 NoCompression 不要压缩源文件。 Optimal 处理时间取决于文件大小。 #压缩级别设为最佳
Compress-Archive -Path .\temp\* -DestinationPath .\Compress_temp.zip -CompressionLevel Optimal
#更新之前的压缩文件
Compress-Archive -Path .\temp
The history and design philosophy of Spring
简介 Spring框架是 Java 平台的一个开源的全栈(Full-stack)应用程序框架和控制反转容器实现,一般被直接称为 Spring。该框架的一些核心功能理论上可用于任何 Java 应用,但 Spring 还为基于Java企业版平台构建的 Web 应用提供了大量的拓展支持。虽然 Spring 没有直接实现任何的编程模型,但它已经在 Java 社区中广为流行,基本上完全代替了企业级JavaBeans(EJB)模型。 Spring框架以 Apache License 2.0 开源许可协议的
微信小程序定义一个组件
1.在根目录新建 components文件夹存放组件文件,一个目录一个组件(包含四个文件),在需要使用组件的页面的配置文件里设置组件的键值对:"v-like"是协议好的组件通用命名规范,路径使用绝对路径(/代表项目根目录) 或者使用相对路径"v-like":"../../like/index" 2.在设计小程序页面的时候最好以750为宽度。1334高度的设计稿为基准,这样可以直接把设计稿上的px设置成对应的rpx 3.在app.wxss里定义page{}下的全局样式,组件只能继承少量公共样式,
await在forEach不起作用解决【await is a reserved word】
原文链接:https://blog.csdn.net/ssbb1995/article/details/82084800 1.await 只能在 async中使用,如: async function demo() {
var res = await testCall()
console.log(res)
}
其中 testCall() 是调用的其他方法。 2.await 不能在 forEach 中使用,可以用 for- of 替代,如下: var arr
【JMeter_08】JMeter逻辑控制器__While控制器<While Controller>
While控制器<While Controller> 业务逻辑: 当条件为非false时,执行该节点下的脚本内容,包括数字、null、空白、字母、符号、true。 当条件为false时,跳过该节点的脚本内容。 节点下的取样器,每一轮循环之初,都会先执行一次这里的条件。 条件支持类型: 变量:${XX}、${__P(,)},只要变量值不是false,都会一直循环。 JavaScript:${__javaScript(,)},当结果为false
luogu P5328 [ZJOI2019]浙江省选
传送门 每个人都可以看成一条直线\(y=ax+b\),所以我们要求的是每条线在整点处,上方线的数量的最小值(注意多条直线如果交于同一整点互不影响) 如果\(m=1\),其实只要求出半平面交,然后在半平面交上的线的答案就是\(1\).然后是\(m=2\),先把排名\(=1\)的线拿走,那么剩下的线如果排名可以为\(2\),那么至少应该在剩下的线的半平面交上.然后对于所有算过的线,他们都可以覆盖半平面交上的一段连续区间,可以使用二分求出覆盖的区间端点,然后就是找出在半平面交上的区域被上述区间覆盖的
今日推荐
周排行