A. c语言中如何显示图片
1、图片也是属于文件类型的一种,图片属于二进制文件。使用fopen函数的二进制模式“rb”就可以打开。
2、例程:
#include<stdlib.h>
#include<stdio.h>
intmain()
{
FILE*fpPhoto,*fpText,*fpTarget;
intiRead;
charszBuf[100];
printf("请输入第一个文件名(bmp): ");
gets(szBuf);
fpPhoto=fopen(szBuf,"rb");
printf("请输入第二个文件名(txt): ");
gets(szBuf);
fpText=fopen(szBuf,"rb");
printf("请输入目的文件名(bmp): ");
gets(szBuf);
fpTarget=fopen(szBuf,"wb");
if(!fpPhoto||!fpText||!fpTarget)
{
printf("打开文件失败! ");
system("pause");
return-1;
}
while((iRead=fread(szBuf,1,sizeof(szBuf),fpPhoto))>0)
fwrite(szBuf,1,iRead,fpTarget);
while((iRead=fread(szBuf,1,sizeof(szBuf),fpText))>0)
fwrite(szBuf,1,iRead,fpTarget);
fclose(fpPhoto);
fclose(fpText);
fclose(fpTarget);
return0;
}
B. c语言源代码更改图片颜色
你好!!
1、首先要读出你图片的个像素值(RGB三种颜色)
2、根据读取到的RGB像素值,对每个颜色做反色处理
3、写入反色后的信息到文件保存
C. c语言输出三角形
将以下代码输入即可输出三角形:
#include<stdio.h>
#include<stdlib.h>
main()
{
int i,j,n,a,b,k=65;
printf("Enter n: ");
scanf("%d",&n);
for(i=n,b=1;i>=1;i--,b++)
{
for(j=2,a=k;j<=i+1;j++)
{
printf("%c",a);
a+=j;
}
k+=b;
printf(" ");
}
system("pause");
}
D. C语言空字符是什么
C语言的空字符是在字符串结尾系统自动加上的‘ ’,以让系统识别出一个字符串的结尾。
如:
字符串“china”。在系统内是以“china ”储存的。
C语言中的字符中,除了字符串末尾之外,字符串里不能包含空字符,否则最先读入的空字符就会被误认为是字符串结尾,因此字符串就被无故截断了。
这种限制使得C语言原生字符串只能保持文本数据,而不能保持诸如图片、音频、视频等二进制数据。只管通过len来取数据就了,不用担心buf里面存放的是不是空字符。
(4)c语言帅气图片扩展阅读
1、scanf() 会自动在字符串后面加上空字符。
2、scanf() 只读取了Victor它在遇到空格、制表符、换行符的时候会停止。所以 scanf() 只能读取一个单词。
E. 如何用C语言程序从bmp格式的图片中读取图片的灰度值
方法一:
#include<stdio.h>
#include<stdlib.h>
voidmain()
{
inti,j;
FILE*fp;//指向文件的指针
fp=fopen("Lena.raw","rb");//打开文件。注意raw格式图像要以只读二进制流的形式打开
if(!fp)
{
printf("ERROR! ");
}
unsignedchar*pData=newunsignedchar[256*256];//注意:raw图像用无符号char型读入
fread(pData,sizeof(unsignedchar),(256*256),fp);//fread具体用法见msdn
fclose(fp);//取消fp指针指向
intvalue[256]={0};//声明并初始化存灰度值的数组
for(i=0;i<(256*256);i++)//统计灰度值
{
value[pData[i]]++;
}
printf("灰度值 大小");//
printf(" ");
fp=fopen("result.txt","wb");
fprintf(fp,"灰度值 大小 ");//注意 否则不能换行!
for(j=0;j<256;j++)//将结果输出到txt中
{
printf("%d %d ",j,value[j]);
//fwrite(value,sizeof(int),256,fp);
fprintf(fp,"%d %d ",j,value[j]);//注意 否则不能换行
}
delete[]pData;//删除空间
fclose(fp);//关闭txt文件
}方法二:
#include<stdio.h>
#include<stdlib.h>
intvalue[256]={0};
intfread(unsignedchar*pData)//把声明的那个数组空间指针作为参数来回传
{
FILE*fp;
fp=fopen("Lena.raw","rb");
if(!fp)
{
printf("ReadERROR! ");
}
fread(pData,sizeof(unsignedchar),(256*256),fp);
fclose(fp);
return0;//
}
intfchuli(unsignedchar*pData)
{
for(inti=0;i<(256*256);i++)//统计灰度值
{
value[pData[i]]++;
}
return0;//
}
intfwrite(unsignedchar*pData)
{
FILE*fp;
fp=fopen("result.txt","wb");
fprintf(fp,"灰度值 大小 ");
for(intj=0;j<256;j++)//将结果输出到txt中
{
printf("%d %d ",j,value[j]);
//fwrite(value,sizeof(int),256,fp);
fprintf(fp,"%d %d ",j,value[j]);
}
delete[]pData;//删除空间
fclose(fp);//关闭txt文件
returnvalue[256];//
}
intmain(unsignedchar*pData)
{
pData=newunsignedchar[256*256];//在主函数里声明新空间
fread(pData);//传数组地址
fchuli(pData);
fwrite(pData);
return0;
}
F. 请问下c语言如何实现插入图片功能
C语言写控制台程序是无法加图片的,只能用命令行输出,最多就是设置下背景和字体,颜色之类的。如果开发API窗口程序,完全依赖于操作系统的函数库。C语言本身并不提供这类函数。
下面是windows系统下实现的函数代码,第一个参数是图片的存放的位置,第二个参数是窗口句柄。
HRESULTShowPic(char*lpstrFile,HWNDhWnd)
{
HDChDC_Temp=GetDC(hWnd);
IPicture*pPic;
IStream*pStm;
BOOLbResult;
HANDLEhFile=NULL;
DWORDdwFileSize,dwByteRead;
//打开图形文件
hFile=CreateFile(lpstrFile,GENERIC_READ,
FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
if(hFile!=INVALID_HANDLE_VALUE)
{
dwFileSize=GetFileSize(hFile,NULL);//获取文件字节数
if(dwFileSize==0xFFFFFFFF)
returnE_FAIL;
}
else
{
returnE_FAIL;
}
//分配全局存储空间
HGLOBALhGlobal=GlobalAlloc(GMEM_MOVEABLE,dwFileSize);
LPVOIDpvData=NULL;
if(hGlobal==NULL)
returnE_FAIL;
if((pvData=GlobalLock(hGlobal))==NULL)//锁定分配内存块
returnE_FAIL;
ReadFile(hFile,pvData,dwFileSize,&dwByteRead,NULL);//把文件读入内存缓冲区
GlobalUnlock(hGlobal);
CreateStreamOnHGlobal(hGlobal,TRUE,&pStm);
//装入图形文件
bResult=OleLoadPicture(pStm,dwFileSize,TRUE,IID_IPicture,(LPVOID*)&pPic);
if(FAILED(bResult))
returnE_FAIL;
OLE_XSIZE_HIMETRIChmWidth;//图片的真实宽度,单位为英寸
OLE_YSIZE_HIMETRIChmHeight;//图片的真实高度,单位为英寸
pPic->get_Width(&hmWidth);
pPic->get_Height(&hmHeight);
//转换hmWidth和hmHeight为pixels距离,1英寸=25.4毫米
intnWidth=MulDiv(hmWidth,GetDeviceCaps(hDC_Temp,LOGPIXELSX),2540);
intnHeight=MulDiv(hmHeight,GetDeviceCaps(hDC_Temp,LOGPIXELSY),2540);
//将图形输出到屏幕上(有点像BitBlt)
bResult=pPic->Render(hDC_Temp,0,0,nWidth,nHeight,0,hmHeight,hmWidth,-hmHeight,NULL);
hmHeight,NULL);
pPic->Release();
CloseHandle(hFile);//关闭打开的文件
if(SUCCEEDED(bResult))
{
returnS_OK;
}
else
{
returnE_FAIL;
}
}
G. C语言怎么给一个变量赋值中文
可以通过给字符数组赋值来解决。就是变量b需要定义为字符数组。
例如:
#include<stdio.h>
intmain()
{
charb[]="汉字";
printf("%s",b);
return0;
}
//运行结果:
C语言中不存在你图片中写的这种语法,既然学C语言,就应该按照C语言要求的格式来进行书写,不能自己强行发明创造。