前言

将二进制流转换成图片的过程通常称为“解码”。具体步骤如下:

  1. 将二进制流读入内存中。
  2. 根据文件格式,解析出图片的一些元信息,例如宽高、颜色空间等。
  3. 根据元信息,将二进制流中的数据解析成具体的像素颜色值。
  4. 将像素颜色值渲染成对应的图片形状。

具体实现方式取决于您使用的编程语言或框架。以下是两个常见的示例:

Python示例:

1
2
3
4
5
6
7
8
9
import io
from PIL import Image

# 假设二进制数据已读入到变量binary_data中
# 将二进制数据转换成PIL的Image对象
image = Image.open(io.BytesIO(binary_data))

# 可以对image做一些处理(如调整大小、旋转等),然后显示或保存
image.show()

Java示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import javax.imageio.ImageIO;

// 假设二进制数据已读入到变量binaryData中
// 将二进制数据转换成BufferedImage对象
BufferedImage image = null;
try {
image = ImageIO.read(new ByteArrayInputStream(binaryData));
} catch (IOException e) {
e.printStackTrace();
}

// 可以对image做一些处理(如调整大小、旋转等),然后显示或保存

注意,在将二进制流转换成图片时,需要确定二进制流的数据格式(如JPEG、PNG、BMP等)。不同的数据格式拥有不同的解码方式,具体实现细节可能有所不同。

一、Mirror

1.打开题目

在这里插入图片描述

2.解题

winhex打开jpg文件,发现结尾有反向字符串
在这里插入图片描述
使用脚本反转
在这里插入图片描述
打卡图片得到flag:Mirr0r_R3f3ct1on_H1dd3n_f14g