一些软件的记录

30 阅读5分钟

ffmpeg

压缩单张图片

ffmpeg -i 待压缩的图片路径 -q:v 2 压缩后的图片路径

input.jpg: 输入图片文件。
-q:v 2: 设置图片质量,值越小质量越高(默认值为 2)。
output.jpg: 输出图片文件。

批量压缩图片

在 Windows 中,可以使用 for 循环来批量压缩图片:

for %i in (*.jpg) do ffmpeg -i "%i" -q:v 2 "压缩后的图片路径_%i"

*.jpg: 匹配当前目录下所有 .jpg 文件。
compressed_%i: 将压缩后的图片保存为 compressed_ 开头的文件。
注意:如果在批处理脚本(.bat 文件)中使用 for 循环,需要将 %i 改为 %%i

for %%i in (*.jpg) do ffmpeg -i "%%i" -q:v 2 "压缩后的图片路径%%i"

调整分辨率并压缩

ffmpeg -i 待压缩的图片路径 -vf "scale=800:600" -q:v 2 压缩后的图片路径

-vf "scale=800:600": 将图片缩放到 800x600 的分辨率。

压缩 PNG 图片

ffmpeg -i 待压缩的图片路径 -compression_level 5 压缩后的图片路径

-compression_level 5: 设置 PNG 图片的压缩级别(0 为无压缩,9 为最大压缩)。

批量压缩 PNG 图片

for %i in (*.png) do ffmpeg -i "%i" -compression_level 5 "压缩后的图片路径_%i"

用 WebP 格式压缩

ffmpeg -i 待压缩的图片路径 -q:v 80 压缩后的图片路径.webp

-q:v 80: 设置 WebP 图片的质量(0 为最差,100 为最好)。

量压缩为 WebP 格式

for %i in (*.jpg) do ffmpeg -i "%i" -q:v 80 "%~ni.webp"

%~ni.webp: 将输出文件保存为与输入文件同名,但扩展名为 .webp

保持原始宽高比

ffmpeg -i 待压缩的图片路径 -vf "scale=800:-1" -q:v 2 压缩后的图片路径

scale=800:-1: 将宽度调整为 800 像素,高度自动调整以保持宽高比。

压缩 GIF 图片

ffmpeg -i 待压缩的图片路径 -vf "scale=400:-1" -f gif 压缩后的图片路径.gif

-vf "scale=400:-1": 将 GIF 图片的宽度调整为 400 像素,高度自动调整。

批量压缩 GIF 图片

for %i in (*.gif) do ffmpeg -i "%i" -vf "scale=400:-1" -f gif "压缩后的图片路径_%i"

指定输出目录

如果希望将压缩后的图片保存到指定目录,可以使用以下指令:

for %i in (*.jpg) do ffmpeg -i "%i" -q:v 2 "d:\e\压缩后的图片路径_%i"

d:\e\压缩后的图片路径_%i: 将压缩后的图片保存到 d:\e\压缩后的图片路径 目录。

使用批处理脚本

将以下内容保存为 .bat 文件,双击运行即可批量压缩图片:

@echo off
for %%i in (*.jpg) do (
    ffmpeg -i "%%i" -q:v 2 "压缩后的图片路径_%%i"
)
echo 图片压缩完成!
pause

图片格式转换

ffmpeg -i 待压缩的图片路径.jpg 压缩后的图片路径.png

Visual Studio Code

自动换行

image.png

设置终端为Powershell和utf-8

// 1. 把默认终端设为 PowerShell
  "terminal.integrated.defaultProfile.windows": "PowerShell",
  // 2. 给 PowerShell 配置自动执行 chcp 65001,启动就切 UTF-8
  "terminal.integrated.profiles.windows": {
    "PowerShell": {
      "source": "PowerShell",
      "args": ["-NoExit", "-Command", "chcp 65001 > $null"],
      "icon": "terminal-powershell"
    },
    // 保留 cmd 但不设为默认,需要时手动切换
    "Command Prompt": {
      "path": [
        "${env:windir}\Sysnative\cmd.exe",
        "${env:windir}\System32\cmd.exe"
      ],
      "args": ["/k", "chcp 65001 > nul"],
      "icon": "terminal-cmd"
    }
  },

配置run coder插件

// run code
  "code-runner.executorMap": {
    // PowerShell 兼容写法:用引号包裹JVM参数,避免解析错误
    "kotlin": "cd $dir && kotlinc $fileName -include-runtime -d $fileNameWithoutExt.jar && java "-Dfile.encoding=UTF-8" -jar $fileNameWithoutExt.jar",
    "python": "python -X utf8"
  },
  "code-runner.runInTerminal": true,
  "code-runner.terminal.encoding": "utf8",

重建索引

在 VS Code 按:Ctrl + Shift + P 输入 → Reload Window

快捷

搜索和替换

按 Press功能 Function
Ctrl + F查找
Ctrl + H替换
F3 / Shift + F3查找下一个/上一个

导航 | Navigation

按 Press功能 Function
Ctrl + T显示所有符号 Show all Symbols
Ctrl + G转到行… Go to Line…
Ctrl + P转到文件… Go to File…
Ctrl + Shift + O转到符号… Go to Symbol…
Ctrl + Shift + M显示问题面板 Show Problems panel
Ctrl + Shift + Tab导航编辑器组历史记录 Navigate editor group history
Alt + ←/→返回/前进 Go back / forward
Ctrl + M切换选项卡移动焦点 Toggle Tab moves focus

基础编辑 | Basic editing

按 Press功能 Function
Alt+ ↑ / ↓向上/向下移动行 Move line up/down
Shift+Alt + ↓ / ↑向上/向下复制行 Copy line up/down
Ctrl+Shift+K删除行 Delete line
Ctrl+Enter在下面插入行 Insert line below
Ctrl+Shift+Enter在上面插入行 Insert line above
Ctrl+] /[缩进/缩进行 Indent/outdent line
Ctrl+Home转到文件开头 Go to beginning of file
Ctrl+End转到文件末尾 Go to end of file
Ctrl+↑ / ↓向上/向下滚动行 Scroll line up/down
Alt+PgUp / PgDown向上/向下滚动页面 Scroll page up/down
Ctrl+/切换行注释 Toggle line comment

文件管理 | File management

按 Press功能 Function
Ctrl+N新文件 New File
Ctrl+O打开文件… Open File…
Ctrl+Shift+S另存为… Save As…
Ctrl+K S全部保存 Save All
Ctrl+F4关闭 Close
Ctrl+K Ctrl+W关闭所有 Close All
Ctrl+Shift+T重新打开关闭的编辑器 Reopen closed editor
Ctrl+K输入保持打开 Enter Keep Open
Ctrl+Tab打开下一个 Open next
Ctrl+Shift+Tab打开上一个 Open previous
Ctrl+K P复制活动文件的路径 Copy path of active file
Ctrl+K R显示资源管理器中的活动文件 Reveal active file in Explorer
Ctrl+K O显示新窗口/实例中的活动文件 Show active file in new window/instance

Maven

  1. 建立kotlin项目指令,交互式
mvn archetype:generate "-DarchetypeGroupId=org.jetbrains.kotlin" "-DarchetypeArtifactId=kotlin-archetype-jvm" "-DarchetypeVersion=1.9.0" "-DinteractiveMode=true"

非交互式

mvn archetype:generate "-DgroupId=com.example" "-DartifactId=kotlin-demo" "-Dversion=1.0.0" "-Dpackage=com.example" "-DarchetypeGroupId=org.jetbrains.kotlin" "-DarchetypeArtifactId=kotlin-archetype-jvm" "-DarchetypeVersion=1.9.0" "-DinteractiveMode=false"
  1. 填写项目信息
Define value for property 'groupId': com.example [包名]
Define value for property 'artifactId': kotlin-demo [项目名]
Define value for property 'version' 1.0-SNAPSHOT: [版本号]
Define value for property 'package' com.wnan: [二级包名]

kotlin-demo
│  pom.xml
└─src
    ├─main
    │  └─kotlin
    │      └─com
    │          └─example
    │                  Hello.kt
    └─test
        └─kotlin
            └─com
                └─example
                        HelloTest.kt

指令

# 1. 编译
mvn compile

# 2. 直接运行(正确写法)
mvn exec:java "-Dexec.mainClass=com.example.HelloKt"


# 3. 打包(先配置可执行JAR,见下文)这个是不能运行的,需要运行就要配置胖包
mvn package

# 4. 运行打包好的JAR
java -jar target/kotlin-demo-1.0.0.jar

打胖包:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>3.4.1</version>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>shade</goal>
            </goals>
            <configuration>
                <transformers>
                    <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
            <!-- 你的主类全路径 -->
                        <mainClass>com.example.HelloKt</mainClass>
                    </transformer>
                </transformers>
            </configuration>
        </execution>
    </executions>
</plugin>

镜像源

阿里源

<mirror>
    <id>aliyunmaven</id>
    <mirrorOf>*</mirrorOf>
    <name>阿里云公共仓库</name>    <url>https://maven.aliyun.com/repository/public</url>
</mirror>

腾讯源

<mirror>
<id>tencent-cloud</id>
<mirrorOf>central</mirrorOf>
<url>https://mirrors.cloud.tencent.com/nexus/repository/maven-public/</url>
</mirror>