linux shell脚本,如何用星号 输出"李"这个字?

linux shell脚本,如何用星号 输出"李"这个字?,第1张

用PHP获得这个字的代码、点阵和验证:

<?php

$hz="李"

$n=ord($hz)

$n1 = ord(substr($hz,0,1)) - 160

$n2 = ord(substr($hz,1,1)) - 160

$offset = ($n1-1)*94 + ($n2-1)

echo "汉字【{$hz}】,内码【".bin2hex($hz)."】,区【{$n1}】,位【{$n2}】,字库偏移【{$offset}】\n"

$hzk=substr(file_get_contents('hzk16'),$offset * 32,32)

//显示字库

$dbstr=[]

for ($i=0$i<32$i++) {

  $dbstr[]=ord(substr($hzk,$i,1))

}

echo implode(',',$dbstr) . "\n"

//显示汉字

for ($i=0$i<32$i++) {

  $c=ord(substr($hzk,$i,1))

  //echo "$c:\n"

  $m = 1<<7

  for ($j=0$j<8$j++){

      //echo "({$j} {$m} "

      echo ($c &$m) ? '*' : '.'

      //echo ")\n"

      $m >>= 1

  }

  if ($i % 2 == 1) echo "\n"

}

?>

运行结果见下图:

那么你需要的shell脚本为:

echo '       *'

echo '       *    *'

echo ' *************'

echo '       *'

echo '     * * *'

echo '    *  *  **'

echo '  **   *    ***'

echo '**     *     *'

echo '    *******'

echo '         *'

echo '       **   *'

echo ' *************'

echo '       *'

echo '       *'

echo '     * *'

echo '      *'

FILE *PHZK16

/*

*HZK16字库初始化_打开字库

*/

void _InitHzk16()

{

PHZK16=fopen("Hzk16","rb")

if(!PHZK16){

printf("error in Hzk16,not exist\n")

system("pause")

exit(1)

}

}

/*

*取得字码

*/

void _GetHzk16Code(unsigned char code[],unsigned char bytes[])

{

unsigned char qh,wh

unsigned long offset

qh=code[0]-0xa0/*得到区号*/

wh=code[1]-0xa0/*得到位号*/

offset=(94*(qh-1)+(wh-1))*32L/*得到偏移位置*/

fseek(PHZK16,offset,SEEK_SET)/*移文件指针到要读取的汉字字模处*/

fread(bytes,32,1,PHZK16)/*读取32 个汉字的汉字字模*/

}

/******************************************************************************************************************/

/*下面这个代码 是C画图模式下可用*/

/*

*改变x、y(左上点)的位置,就可以实现文字的横向输出

*单个文字输出

*/

void _InputHzk16(int x,int y,unsigned char code[],int color)

{

int i,j,x0=0,y0=0

unsigned char s,mat[32]

_GetHzk16Code(code,mat)

for(i=0i<16i++){

s=mat[2*i]

x0=x+7

y0=y+i

while(s){

if(s%2){

putpixel(x0,y0,color)

}

s=s/2

x0--

}

s=mat[2*i+1]

x0=x+15

while(s){

if(s%2){

putpixel(x0,y0,color)

}

s=s/2

x0--

}

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8459765.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-16
下一篇2023-04-16

发表评论

登录后才能评论

评论列表(0条)

    保存