c语言如何显示图像,c语言能显示图片吗

该博客主要展示了如何使用C语言加载并显示多个BMP图像文件。通过安装BGI驱动和设置调色板,程序逐个打开指定的BMP文件,并将其内容在SVGA256模式下显示在屏幕上。程序首先查找文件,然后读取图像尺寸信息,调整缓冲区,设置色彩寄存器,并将像素逐行绘制到图形窗口中。
摘要由CSDN通过智能技术生成

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

/* Svga64k.bgi 测试文件 */

#include "graphics.h"

#include "Svga256.h"

#include "stdio.h"

#include "fcntl.h"

#include "malloc.h"

#include "io.h"

int huge Return_SVGA256(void)

{

return(SVGA320x200x256); /* 返回各种分辨率的对应编号 0~6 宏定义参见 Svga256.h */

}

void main()

{int width,height,i=DETECT,j=0,x0,y0,fp,x_x;

unsigned char fix,*buffer,pix24b[4];

DacPalette256 dac256;

installuserdriver("Svga256",Return_SVGA256);/* 对于svga256必需执行该函数以安装BGI驱动 */

initgraph(&i,&j,"");/* 执行TC默认的BGI初始化函数 */

for(x_x=0;x_x<76;x_x++){

if(x_x=1)

{

if((fp=open("xy_256.bmp",O_RDONLY|O_BINARY))==-1)

{

puts("Can't find file ""xy_256.bmp"".");

exit(1);

}

}

else

if(x_x=2){

if((fp=open("xy_2561.bmp",O_RDONLY|O_BINARY))==-1)

{

puts("Can't find file ""xy_256.bmp"".");

exit(1);

}

}

else

if(x_x=3){

if((fp=open("xy_2562.bmp",O_RDONLY|O_BINARY))==-1)

{

puts("Can't find file ""xy_256.bmp"".");

exit(1);

}

}

else

if(x_x=4){

if((fp=open("xy_2563.bmp",O_RDONLY|O_BINARY))==-1)

{

puts("Can't find file ""xy_256.bmp"".");

exit(1);

}

}

else

if(x_x=5){

if((fp=open("xy_2564.bmp",O_RDONLY|O_BINARY))==-1)

{

puts("Can't find file ""xy_256.bmp"".");

exit(1);

}

}

else

if(x_x=6){

if((fp=open("xy_2565.bmp",O_RDONLY|O_BINARY))==-1)

{

puts("Can't find file ""xy_256.bmp"".");

exit(1);

}

}

lseek(fp,18,SEEK_SET);

read(fp,&width,4);

read(fp,&height,4);

fix=(width%4)?(4-width%4):0;

x0=(320-width)/2;y0=(200-height)/2;

lseek(fp,54,SEEK_SET);

for(i=0;i<256;i++) /* 按照该图片的DAC色表设置色彩寄存器 */

{read(fp,pix24b,4); /* 读取DAC分量信息 */

dac256[i][0]=pix24b[2]>>2;dac256[i][1]=pix24b[1]>>2;dac256[i][2]=pix24b[0]>>2; /* 设置调色板 */

}

setvgapalette256(&dac256); /* 应用调色板, 定义参见 Svga256.h */

buffer=(unsigned char *)malloc(width);

for(j=height-1;j>=0;j--)

{read(fp,buffer,width);

lseek(fp,fix,SEEK_CUR);

for(i=0;i

putpixel(x0+i,y0+j,buffer[i]);

}

free(buffer);

close(fp);

}

getch();

closegraph();

}

高等数学基础知识大全txt》是一本以高等数学为主题的电子书,旨在提供全面的高等数学基础知识。该书内容涵盖了微分、积分、微分方程、级数等各个领域的基础知识。 首先,在微分方面,该书详细介绍了导数的概念和性质,包括函数的极限、连续性以及导函数的计算方法。还包括高阶导数、隐函数求导及高阶导数的应用等。此外,书中还讲解了微分的几何意义和微分中值定理等重要内容。 其次,在积分方面,该书讲解了不定积分和定积分的概念与计算方法,包括分部积分、换元积分法、定积分的几何意义和物理应用等。同时,书中还包括定积分的计算技巧以及求曲线下面积和弧长的方法。 此外,该书还介绍了微分方程的基本理论和解法,包括常微分方程、线性方程和二阶方程的求解方法,以及变量可分离方程、齐次方程和一阶线性方程等的解法。还包括欧拉方程和常系数线性方程组等内容。 最后,在级数方面,该书讲解了数列和级数的基本概念和性质,包括等比数列、调和数列以及级数的敛散性判定等。此外,书中还讨论了级数的性质,如级数的性质、常用级数的求和方法以及函数展开为幂级数等。 综上所述,《高等数学基础知识大全txt》是一本综合性的数学教材,适用于高等学校的数学专业学生,也可供对高等数学感兴趣的读者参考。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值