C语言中,图像处理函数的使用Tc中用initgraph()函数可以切换到图形模式,用closegraph()可以从图形模式切换回字符模式 。
initgraph()和closegraph()都是图形函数,使用图形函数必须包括头文件"graphics.h" 。
void far i nitgraph(int far *graphdriver, int far *graphmode,char far *pathtodriver);
graphdriver是指向图形驱动序号变量的指针,
graphmode是在graphdriver选定后,指向图形显示模式序号变量的指针,
pathtodriver表示存放图形驱动文件的路径 。
图形驱动序号不同,图形驱动文件也不同 。序号为VGA图形驱动对应"egavga.bgi"这个图形驱动文件 。
"egavga.bgi"一般在 Tc目录下
例如:
-------
#include graphics.h
int Drive,Mode=DETECT;
initgraph(Drive,Mode,""); //图形显示器、显示模式、路径自动检测
运行时需要在当前目录下存在 EGAVGA.BGI文件
在TC\BGI目录底下
-------
如果编译后的.exe文件在另外一个目录(如编译后的.exe文件在D:\MyTc 目录下,而编译器的程序和.BGI文件在C:\Turboc\bin 目录下,则需要填上BGI文件的路径
例如:
initgraph(Drive,Mode,"C:\\Turboc\\bgi");
利用c语言怎样对bmp图像进行平移的操作?位图平移没有这方面的库函数,必须自己来实现,下面是位图平移的参考代码:
#include "stdafx.h"
#includewindows.h
#includestdio.h
#includemath.h
int _tmain(int argc, _TCHAR* argv[])
{
int width;
int height;
RGBQUAD *pTableColor;
unsigned char *pBmpBuf1,*pBmpBuf2;
BITMAPFILEHEADER bfhead;
BITMAPINFOHEADER bihead;
//读出源图像的信息
FILE *fpr=fopen("E:\\picture\\dog.bmp","rb");
if(fpr==0)
return 0;
fread(bfhead,14,1,fpr);
fread(bihead,40,1,fpr);
width=bihead.biWidth;
height=bihead.biHeight;
int LineByte=(width*8/8+3)/4*4;
pTableColor=new RGBQUAD[256];
fread(pTableColor,sizeof(RGBQUAD),256,fpr);
pBmpBuf1=new unsigned char[LineByte*height];
fread(pBmpBuf1,LineByte*height,1,fpr);
fclose(fpr);
//将处理后的图像赋值为白色
pBmpBuf2=new unsigned char[LineByte*height];
for(int i=0;iheight;i++)
for(int j=0;jwidth;j++)
{
unsigned char *p;
p=(unsigned char*)(pBmpBuf2+LineByte*i+j);
(*p)=255;
}
//左右平移功能的实现
int t;
printf("请输入左平移或右平移的大小t(左移t0,右移t0):");
scanf("%d",t);
int k=abs(t);
printf("%d",k);
if(t0)
{
if(t=(-width))
{
for(int i=0;iheight;i++)
for(int j=0;j(width-k);j++)
{
unsigned char *p1,*p2;
p1=pBmpBuf1+LineByte*i+j+k;
p2=pBmpBuf2+LineByte*i+j;
(*p2)=(*p1);
}
}
}
else
{
if(t=width)
{
for(int i=0;iheight;i++)
for(int j=k;jwidth;j++)
{
unsigned char *p1,*p2;
p1=pBmpBuf1+LineByte*i+j-k;
p2=pBmpBuf2+LineByte*i+j;
(*p2)=(*p1);
}
}
}
//保存处理后的图像
FILE *fpw=fopen("dog.bmp","wb");
fwrite(bfhead,14,1,fpw);
fwrite(bihead,40,1,fpw);
fwrite(pTableColor,sizeof(RGBQUAD),256,fpw);
fwrite(pBmpBuf2,LineByte*height,1,fpw);
fclose(fpw);
return 0;
}
C语言中如何让显示的图像向右走输出后清屏c语言图像移动函数,再重新输出并添加空格 。
输出4行数据 。前面有若干个空格 。所以要想让它移动c语言图像移动函数的话,执行两步 。清屏 。重新输出4行数据,每行前面空格减少一位 。这样就向左移动c语言图像移动函数了一位c语言图像移动函数了 。循环执行就是不停向左,类似c语言图像移动函数的还可以上下右移动 。
推荐阅读
- 包含jquerytypeoff的词条
- bim与gis的未来的简单介绍
- 女生模拟经营游戏下载安装,女生模拟游戏大全
- 卡牌游戏和棋牌游戏的区分的简单介绍
- mysql数据库怎么退出 mysql 怎么退出
- 馒头能做出什么视频,馒头视频做法
- ppt怎么做有创意,如何做创意ppt
- 手机版免费单机射击游戏,手机版免费单机射击游戏
- c语言句柄函数 c++中句柄是什么意思