ffmpeg将图片转换为avif
前置步骤安装FFmpeg1.进入FFmpeg官网,如下图(此处环境为Windows):有两个选择:“gyan.dev”和“BtbN”,有一定区别,前者用msvc编译,后者使用GCC编译。(当然我们现在不用关心,都可以用)以gyan.dev为例,git master builds和release builds中的构建都是可以的。下载解压到指定目录。
添加环境变量在用户变量或系统变量中,找到变量”Path”,选择”编辑”,然后”新建”,填入解压后的FFmpeg路径。之后就可以在Cmd/PowerShell中使用FFmpeg命令了。
使用在需转换的目录下打开Windows终端/PowerShell,输入
1ffmpeg -i input.jpg output.avif
来看看结果:图片变得更小了,avif得到了主流浏览器的支持,可以直接嵌入网页中。并且Windows自带的”照片”应用也支持打开avif图片。
msvcrt和ucrt
起因因为mingw-w64在sourceforge上提供的GCC最高只到8.1.0,所以寻求编译更新的版本。
过程首先是找到了mmozeiko的build-gcc-mingw,但是存在对UTF-8的兼容问题。(这导致了不能正确识别中文路径)最后发现niXman的mingw-builds对此打了patch,问题解决。但是看着Action中的Jobs又产生了困惑。(终于进入正题了)msvcrt/ucrt是啥?(以下为Github Action Workflows示意)
正文经过查询资料得到:
MSVCRT(Microsoft Visual C++ Runtime):是微软提供的一个 C++ 运行库,可以用于编译 Windows 平台上的 C/C++ 程序。UCRT(Universal CRT):是微软提供的一个通用 C 运行库,可以用于编译 Windows 平台上的 C/C++ 程序。并支持新的 C11 和 C++11 标准。
它们是Windows系统上的C运行库,UCRT只存在于Win10及更新的系统上,作为对MSVCRT的替代。它对新标准的支持更好,一 ...
长整型long long int
参考资料根据Microsoft技术文档:
long long类型占用8个字节,范围为-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807。
而C语言中文网提到:
C99 标准就添加了 long long 这个类型,并且流行的编译器也支持了该类型,这也就是我们很早就接触到 long long 的原因。在此之后 C++ 标准委员会在 C++11 中才有计划将整型 long long 加入标准中。
举例:1234567891011121314#include <stdio.h>int main(){ int N,i; long long factorial=1,sum=0; scanf("%d",&N); for(i=1;i<=N;i++) { factorial*=i; sum+=factorial; } printf("sum=%lld\n",sum); ...
c语言控制台输出中文乱码解决方案
现象:使用编辑器+mingw64时(而Dev c++则不会),编码格式为UTF-8,printf输出的中文乱码。(如果是中文目录,gdb将报错,也是同样原因)
解释:Windows系统终端默认输出GBK编码,而文本编辑器中使用UTF-8,编码不一致导致异常。(在Dev c++中保存为GB2312,在终端中显示正常。
解决方法:1.更改Windows终端输出编码格式如图所示,点击“更改系统区域设置”,再勾选Beta版并确定。Windows终端将会以UTF-8输出内容。可能的弊端:部分程序兼容出现问题,字体乱码,运行异常。(如图吧工具箱)
2.直接修改.c源文件增添头文件<windows.h>和调用API函数SetConsoleOutputCP(65001),使Windows终端输出正确。
12345678#include <stdio.h>#include <windows.h>int main(){ SetConsoleOutputCP(65001); printf ("中文"); return 0;& ...
git添加gpg签名的一些问题
问题:跟着gitee给的文档给commit加gpg验证,但是一直不生效。
解决:有一些步骤还要执行:
1.全局配置启用gpg sign1git config --global commit.gpgsign true
2.设置gpg路径1git config --global gpg.program "program path"
最后,大功告成。学习还是要循序渐进的,没有捷径可以走。
头歌课堂实验
float还是double事先未告知数据精度,对初学者还是不友好的。光靠猜是没有任何意义,只是徒增困扰,本来是简单的事复杂化。没事用什么double……
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick StartCreate a new post1$ hexo new "My New Post"
More info: Writing
Run server1$ hexo server
More info: Server
Generate static files1$ hexo generate
More info: Generating
Deploy to remote sites1$ hexo deploy
More info: Deployment