栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

怎么用C语言编写一个猪头的形状

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

怎么用C语言编写一个猪头的形状

怎么用C语言编写一个猪头的形状

可以将问题修改为如何打印出黑白图案(C语言描述)?而不仅仅是猪头。

简单描述一下解决问题的机制。

首先是找到一张想要转换的图片。(废话)

第二步将其使用MATLAB等软件转换成二进制编码(我们只能考虑是黑白图片,每个1表示黑色。每个0表示白色)。对于彩色图片,转换成黑白后,我们将像素点RGB编码为000的编码为0,其它所有灰阶编码为1。当然实际肯定有更好的办法。

比方说是一个86像素图片。也就是 68/8=6字节。

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

这是全白的情况。将一张汉字“十”的图片表示出来,那么就是:

0 0 0 1 0 0 0 0

0 0 0 1 0 0 0 0

1 1 1 1 1 1 1 1

0 0 0 1 0 0 0 0

0 0 0 1 0 0 0 0

0 0 0 1 0 0 0 0

转换后的数字直接按顺序进行储存为二进制文件。假设存储并命名为test.bin。

接下来是一些操作系统的系统调用。我尝试用C来简单描述一下。

FILE *p;

p=fopen(“test.bin”,“rb”);

//打开并对二进制文件只读

if (p==NULL)

exit(EXIT_FAILURE );

//报错并调用exit()后退出程序

…

char a[100];

//用来保存图片数字信息

int n;

//变量n用来存储fread()返回值进行一些判断

n=fread(a,1,6*8/8,p);

现在数组a中有了图片的信息。将数组每8个元素打印一行后换行即可。表示黑色的字符可以用星号“*”。

理解运行机制后,我们可以把图片像素扩大到320*240。当然,我们可以调用fwrite( )对图片进行人为修改。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/953841.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号