题目
编号: 201909-3
试题名称: 字符画
时间限制: 5.0s
内存限制: 512.0MB
题目背景
君君是个喜欢旅行的女孩子,世界那么大,她哪里都想去看看。这个暑假,她踏遍了大江南北,感慨于祖国幅员的辽阔。开学了,君君打算整理一下最近拍的照片,却发现自己电脑上Linux的图形界面似乎罢工了。面对着终端里不断闪动的光标,她灵机一动......
题目描述
本题中,你需要将图片转换为终端中可以显示的字符画。
你将得到一张24位图片,这意味着其中的像素表示为RGB三原色的形式,而每种颜色的取值范围为0到255(一个字节),因此每个像素占用的空间为24比特。你需要这张图片分割为指定数量的块。对于每一块,你需要计算所有像素的三个颜色分量的平均值,并输出对应颜色的字符形成字符画。
为了在终端中输出彩色的字符,你需要使用特殊的转义序列。在目前通行的终端规范中,与颜色相关的转义序列包括:
- ESC [ 38;2;R;G;B m更改终端的前景色(字符的颜色)为(R,G,B)
- ESC [ 48;2;R;G;B m更改终端的背景色(未被字符遮盖处的颜色)为(R,G,B)
- ESC [ 0 m重置终端的颜色状态为默认值(前景色为白色(255,255,255),背景色为黑色(0,0,0))
你只需要在输出中加入这些转义序列,就能够控制终端中显示的字符颜色。在书写转义序列时,有以下注意事项:
- 所有空格都是为了方便辨认而添加的,不需要出现在实际的转义序列输出中
- ESC不是字面上的三个字符,而是ASCII序号为27(八进制表示为033)的一个字符,代表转义序列的开始。在C/C++/Java/Python中,你都可以使用