0%

range 函数用于生成一个整数(integer)序列。

range(start, end, step),返回类型为range,左闭右开区间。

1
2
3
4
5
6
7
8
for i in range(1, 10, 2):
print(i)

1
3
5
7
9

arange 是 numpy 包下面的函数,生成一个 float64 的 Array。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import numpy as np
for i in np.arange(1, 2, 0.1):
print(i)

1.0
1.1
1.2000000000000002
1.3000000000000003
1.4000000000000004
1.5000000000000004
1.6000000000000005
1.7000000000000006
1.8000000000000007
1.9000000000000008

这里涉及到一个问题就是 float 比较大小的问题,可以使用 math.isclose() 函数。

1
if math.isclose(1.2000000000000002, 1.2, rel_tol=1e-5)

我们使用 IDEA 在项目中查找某个字符串时,搜索结果的数量如果超过某个阈值,那就会显示不出来。

如图所示,100+ matches in 100+ files

可以对 IDEA 进行设置,以显示更多数量的结果集。

Help -> Find Action

输入Registry

找到参数 ide.usages.page.size,把结果设置为你想要的值。

获取图片的像素

1
2
3
BufferedImage bufferedImage = ImageIO.read(file);
int width = bufferedImage.getWidth();
int height = bufferedImage.getHeight();

压缩图片

使用一个开源的图片处理库 Thumbnailator,有一直在维护的。

1
2
3
4
5
<dependency>
<groupId>net.coobird</groupId>
<artifactId>thumbnailator</artifactId>
<version>0.4.14</version>
</dependency>

压缩时,按比例缩放,必须同时满足最大不超过size方法里面的width和height参数值。

直接转为文件输出:

1
2
3
4
5
6
String inputImage = "input.jpeg";
String outputImage = "out.jpeg";

Thumbnails.of(inputImage)
.size(100, 60)
.toFile(outputImage);

也可以转为输出流,再转为输入流供其他使用:

1
2
3
4
5
6
7
8
9
10
String inputImage = "input.jpeg";
String outputImage = "out.jpeg";

ByteArrayOutputStream baos = new ByteArrayOutputStream();

Thumbnails.of(inputImage)
.size(100, 60)
.toOutputStream(baos);

ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());

注意关闭文件。