久久午夜无码,日日射天天射五月丁香婷婷我来了 ,欧美黑人又长又粗在线视频,午夜天网站

c語言編程心形代碼(如何用 C 語言畫心形)

c語言編程心形代碼(如何用 C 語言畫心形)

樂一凡 2025-04-12 科技 20 次瀏覽 0個評論

在我們IT行業(yè)每天面對的就是敲代碼,所以很多人無法接受這份工作,因為很無聊也很枯燥,長期工作會使人情緒低落,其實我們編程很多時候也有有趣的地方,接下來我就用一個簡單的c語言作圖來緩解一下氣氛。

新的一年開始了,是時候作出改變了。

以下為用C語言畫心形的三種方式(附代碼)

畫心1

如何用 C 語言畫「心形」?

如何用 C 語言畫「心形」?

關(guān)于%*.*s

小數(shù)點.后“*”表示輸出位數(shù),具體的數(shù)據(jù)來自參數(shù)表

printf格式字符串中,與寬度控制和精度控制有關(guān)的常量都可以換成變量,方法就是使用一個“*”代替那個常量,然后在后面提供變量給“*”。

同樣,小數(shù)點.前也可以添加*,也要用戶輸入一個位寬值來代替,表示輸出的字符所占位寬。

也就是說,前面定義輸出總寬度,后面定義輸出字符個數(shù)。

printf("%*.*s\n", 50, 3, a); // 50表示此次輸出占位寬,

//3表示輸出a數(shù)組的三個字符

畫心2

如何用 C 語言畫「心形」?

如何用 C 語言畫「心形」?

畫心3

如何用 C 語言畫「心形」?

Linux上通過framebuffer將jpeg圖片畫在屏幕上

安裝JPEG庫

1.解壓jpeg源碼 tar -xzvf jpegsrc.v8a.tar.gz

2.在/home/xxx下新建jpeg目錄 mkdir jpeg

3.進(jìn)入jpeg源碼目錄jpeg-8a cd jpeg-8a

4.生成makefile腳本 ./configure --prefix=/home/xxx/jpeg

5.編譯 make

6.安裝 make install

安裝完畢后就可以在/home/xxx/jpeg目錄下看到 jpeg解碼庫

配置JPEG庫

如何用 C 語言畫「心形」?

如何用 C 語言畫「心形」?

#include <unistd.h>

#include <stdio.h>

#include <stdlib.h>

#include <fcntl.h>

#include <linux/fb.h>

#include <sys/mman.h>

#include <sys/ioctl.h>

#include <errno.h>

#include <string.h>

#include "jpeglib.h"

typedef struct Tag_RGB

{

unsigned char ucRed;

unsigned char ucGreen;

unsigned char ucBlue;

}St_RGB;

int main (int agrc, char *argv[])

{

int fp=0;

struct fb_var_screeninfo vinfo;

struct fb_fix_screeninfo finfo;

fp = open("/dev/fb0",O_RDWR);

if (fp < 0)

{

printf("Error : Can not open framebuffer device\n");

exit(EXIT_FAILURE);

}

if (ioctl(fp,FBIOGET_FSCREENINFO,&finfo))

{

printf("Error reading fixed information\n");

exit(EXIT_FAILURE);

}

if (ioctl(fp,FBIOGET_VSCREENINFO,&vinfo))

{

printf("Error reading variable information\n");

exit(EXIT_FAILURE);

}

printf("The mem is :%d\n", finfo.smem_len);

printf("The line_length is :%d\n", finfo.line_length);

printf("The xres is :%d\n", vinfo.xres);

printf("The yres is :%d\n", vinfo.yres);

printf("bits_per_pixel is :%d\n", vinfo.bits_per_pixel);

unsigned long screensize = 0;

screensize = vinfo.xres * vinfo.yres * vinfo.bits_per_pixel / 8;

//這就是把fp所指的文件中從開始到screensize大小的內(nèi)容給映射出來,

//得到一個指向這塊空間的指針

unsigned char *fbp =(unsigned char *)mmap(0, screensize, PROT_READ|PROT_WRITE

, MAP_SHARED, fp, 0);

if (fbp == (unsigned char*)-1)

{

printf ("Error: failed to map framebuffer device to memory./n");

exit (EXIT_FAILURE);

}

unsigned int location = 0;

struct jpeg_decompress_struct jinfo;

struct jpeg_error_mgr jerr;

/*Bind error handler*/

jinfo.err = jpeg_std_error(&jerr);

/*init jpeg decompress object*/

jpeg_create_decompress(&jinfo);

/*Bind jpg data object*/

FILE * pfJPG = fopen(argv[1], "rb");

if(NULL == pfJPG)

{

printf("open %s failed. error->%s\n", argv[1], strerror(errno));

jpeg_destroy_decompress(&jinfo);

}

else

{

jpeg_stdio_src(&jinfo, pfJPG);

jpeg_read_header(&jinfo, TRUE);

/*Start decompressing*/

jpeg_start_decompress(&jinfo);

/*Only get decompress arguments*/

//jpeg_calc_output_dimensions(&jinfo);

printf("Output Width = %d\n",jinfo.output_width);

printf("Output Height = %d\n",jinfo.output_height);

//Color Channel

printf("Output Components = %d\n",jinfo.output_components);

unsigned char** ppucRowData = NULL;

ppucRowData = (*jinfo.mem->alloc_sarray)((j_common_ptr) &jinfo, JPOOL_IMAGE

, jinfo.output_width * jinfo.output_components, 1);

unsigned int i = 0;

unsigned int j = 0;

St_RGB stColor = {0};

while (jinfo.output_scanline < jinfo.output_height) //jinfo.output_height

{

jpeg_read_scanlines(&jinfo, ppucRowData, 1);

for (i=0; i<jinfo.output_width; i++)

{

location = i*(vinfo.bits_per_pixel/8)+j*finfo.line_length;

stColor.ucRed = ppucRowData[0][i*jinfo.output_components];

stColor.ucGreen = ppucRowData[0][i*jinfo.output_components+1];

stColor.ucBlue = ppucRowData[0][i*jinfo.output_components+2];

/*直接賦值來改變屏幕上某點的顏色*/

*(fbp + location) = stColor.ucBlue;

*(fbp + location + 1) = stColor.ucGreen;

*(fbp + location + 2) = stColor.ucRed;

*(fbp + location + 3) = 0; /*是否透明*/

}

j++;

}

/*Finish Decompress*/

jpeg_finish_decompress(&jinfo);

/*Destroy Decompress Object*/

jpeg_destroy_decompress(&jinfo);

fclose(pfJPG);

}

munmap (fbp, screensize); /*解除映射*/

close (fp);

return 0;

}

編譯:gcc heart.c -o ourheart -ljpeg

運行:./ourheart

轉(zhuǎn)載請注明來自夕逆IT,本文標(biāo)題:《c語言編程心形代碼(如何用 C 語言畫心形)》

每一天,每一秒,你所做的決定都會改變你的人生!

發(fā)表評論

快捷回復(fù):

評論列表 (暫無評論,20人圍觀)參與討論

還沒有評論,來說兩句吧...

亚洲精品中文字幕无码| 九九99都是精品| 波多无码91| 国产AⅤ一区二区三区精品| 韩国黄色视频网站| 农村熟老妇子乱伦视频| 亚洲国产精品无码区二本| 在线观看成人精品| 亚洲少妇一区二区| 欧美喷水少妇| 激情超碰在线| 国产丝袜精品一区二区在线| 综合图区无码图| 久久青草精品欧美日韩| 内射丝袜中出| www中文字幕www| 中国亚洲青青草| 超碰99精品中文字幕| 四虎影在永久在线观看| 成人精品免费网站| 国产精品免费久久黄AV片| 深爱激情五月丁香欧洲| 97精品人妻一区二区三区在线| 亚洲中文不卡DvD| 国产精品美女久久| 69猛进入| 国产在线视频不卡| 一级特黄色一级黄片| 日本亚洲精品色婷婷在线影院| 最新国产一二三区无码| 国模久久模特小黎| 无码日韩AⅤ一区二区三区| 精品免费国产一区| 亚洲XXX日本| 成人欧美一区二区三区白人| 人人摸人人干人人操| 国产香蕉久久精品| 日韩一区二区视频免费看| 日韩欧美国产武侠古典| 亚洲熟妇久久国内精品| 欧美成人精品一区二三区在线观看 |