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語言要求的格式來進行書寫,不能自己強行發明創造。