GIF图像Ascall版
GIF图像是简单的调色板图像,和BMP图像的编码基本相同。对GIF图像进行解码可以得到由图像的颜色索引值组成的矩阵。对象素点进行8×16的组块,可以将图像用Ascall码替换。
l 替换原理:
1. Ascall码的灰度
打开Notepad,然后输入1, 2 并将其选取。然后进行屏幕拷贝(Alt+PrtSc),并打开Paint在View中将其放大600%并显示网格,如下图所示:
我们可以数数1占用多少个点,22点;2占用28点。那么在蓝色区域有8×16个点。所以可以知道1的灰度是 .以下是所有Ascall的灰度值:
private char[] character={ ' ', '-', '\'', '.', '`' ,',','^','=',
':','"','~','+','_',';','<','>',
'/','\\','r','*','(',')','1','7',
'T','I','{','}','L','z','!','c',
's','?','i','t','f','J','l','F',
'a','x','e','Z','S','|','v','5',
'2','Y','o','u','n','E','P','X',
'C','4','3','w','j','k','[',']',
'9','6','h','d','V','G','b','$',
'&','m','D','U','A','O','K','R',
'8','H','p','q','B','W','0','Q',
'%','y','M','#','N','g',' '};
private int[] gray= {0,6,6,6,7,10,10,12,12,12,14,14,
16,16,18,18,20,20,20,21,22,22,
22,22,22,22,22,22,22,22,22,22,
22,22,24,24,24,24,24,25,26,26,
26,26,26,26,26,27,28,28,28,29,
29,29,30,30,30,31,31,32,32,32,
32,32,32,32,33,34,34,34,34,34,
35,35,36,36,36,36,36,38,38,38,
38,38,39,39,40,40,40,40,41,42,
42, 44, 47};
2. GIF图像的灰度
GIF图像的灰度很容易表示:
3. 替换方式
将GIF图像分成8×16的小块,并计算各小块的平均灰度值。接着和Ascall灰度比较选择最恰当的Ascall替换一个8×16的小块。
l 转换软件:
实验的图像为Lena的修改图,如下:
软件的执行效果如下:
转换后的Ascall图像效果如下:
顺便贴上Ascall码对应的灰度值:
private char[] character={ ' ', '-', '\'', '.', '`' ,',','^','=', ':','"','~','+','_',';','<','>', '/','\\','r','*','(',')','1','7', 'T','I','{','}','L','z','!','c', 's','?','i','t','f','J','l','F', 'a','x','e','Z','S','|','v','5', '2','Y','o','u','n','E','P','X', 'C','4','3','w','j','k','[',']', '9','6','h','d','V','G','b','$', '&','m','D','U','A','O','K','R', '8','H','p','q','B','W','0','Q', '%','y','M','#','N','g',' '};
private int[] gray= {0,6,6,6,7,10,10,12,12,12,14,14, 16,16,18,18,20,20,20,21,22,22, 22,22,22,22,22,22,22,22,22,22, 22,22,24,24,24,24,24,25,26,26, 26,26,26,26,26,27,28,28,28,29, 29,29,30,30,30,31,31,32,32,32, 32,32,32,32,33,34,34,34,34,34, 35,35,36,36,36,36,36,38,38,38, 38,38,39,39,40,40,40,40,41,42, 42, 44, 47};
发表于 @ 2006年08月05日 10:35:00|评论(loading...)|编辑