『壹』 c語言如何實現圖像對比
C函數庫:
以前版本的C(TC時代)有graphics庫可以用,
現在這個庫不是通用的了(VC++不包含graphics.h),但是可以加搜差上easyX(就鏈嫌是個常用非官方庫,實現了graphics.h的功能並有不少改進).
給你個思路.
直觀的方法:
1.用loadimage將兩張圖片載入
2.用putimage輸出第一張
3.用putimage輸出第二張, 但是第四個參數選擇XOR_PUT(圖像和原世喚皮有像素作異或運算)
相同顏色的點將被抹除而只留下不同部分(但是顏色不能保證正確).
此方法可以快速直觀得到不同處(找茬外掛專用)
准確的方法:
1.load兩張圖片
2.用getpixel逐個對比兩張圖片
稍稍優化的方法:
1.先用直觀方法獲得大致不同的區域
2.用GetMouseMsg()獲得滑鼠相關信息
3.滑鼠框選差異區域
4.對應兩個圖片用getpixel僅處理差異區域.
要是用winapi之類的,那方法就更多了.
『貳』 C語言都有什麼函數要記
函數很多,用不著全部記住,也是不可能的。你可以記幾個常用的函數,如輸入輸出函數等,其它的等到使用的時候查一下學習學習,慢慢就掌握了,祝你進步。
『叄』 運動的小球 C語言
int n;
scanf("%d",&n);
for (int j=0; j<n; j++)
{
for(i=0; i<185; i++)
{
putimage(70+i, 170, buf, COPY_PUT); /*左邊球向右運動*/
putimage(500-i, 170, buf, COPY_PUT); /*右邊球向左運動*/
}
for(i=0;i<185; i++)
{
putimage(255-i, 170, buf, COPY_PUT);
putimage(315+i, 170, buf, COPY_PUT);
}
}
『肆』 putimage函數有時候有7個參數為什麼有時候有3個參數
putimageC語言圖形函數,包含在頭文件graphics.h
函數名: putimage
功 能: 在屏幕上輸出一個點陣圖
用咐簡鬧 法:void far putimage(int x, int y, void far *bitmap, int op);注釋:x,y表示屏幕上以(x,y)左上角的區域,int op可以是:復制、OR、AND、XOR、NOT等,分別進行或、與、異或、非等運算。
putimage函數支持兩咐斗種語法,所以衡罩putimage函數有時候有7個參數有時候有3個參數。
『伍』 C語言 GRAPHICS庫
#include <iostream>
#include <cstdlib>
#include <graphics.h>
#include <conio.h>
using namespace std;
IMAGE *MG=NULL;
void draw()
{
int n,i;
initgraph(1366, 768);
setbkcolor(WHITE);
cleardevice();
IMAGE MG;
loadimage(&MG,_T( "A.JPG"));
for(i=100;i<800;i+=27)
for(n=100;n<800;n+=27)
putimage(i, n, &MG);
}
void mouse()
{
MOUSEMSG W;
IMAGE MG;
loadimage(&MG,_T( "b.JPG"));
int i=100;
while(!kbhit()){ //當敲擊回車退出 這里加了個循環
W=GetMouseMsg();
if(W.uMsg==WM_LBUTTONDOWN)
{
putimage(i,i , &MG);
i+=27;
}
}
}
int main()
{
draw();
mouse();
}
我這里測試通過
『陸』 用c語言如何讀取和保存jpg圖片文件
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int file_size(char* filename)//獲取文件名為filename的文件大小。
{
FILE *fp = fopen(filename, "rb");//打開文件。
int size;
if(fp == NULL) // 打開文件失敗
return -1;
fseek(fp, 0, SEEK_END);//定位文件指針到文件尾。
size=ftell(fp);//獲取文件指針偏移量,即文件大小。
fclose(fp);//關閉文件。
return size;
}
int main ()
{
int size=0;
size=file_size("qw");
printf("%d ",size);
FILE * pFile,*qw;
char *buffer=(char*)malloc(sizeof(char)*size);
qw =fopen("qw","r");
pFile = fopen ( "qwe" , "wb" );
printf("%d== ",pFile);
printf("%d ",size);
fread(buffer,1,size,qw);
fwrite (buffer , sizeof(byte), size , pFile );
fclose (pFile);
rename("qwe","Groot.jpg");
return 0;
}
(6)putimagec語言擴展閱讀:
c語言讀取TXT文件:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LINE 1024
int main()
{
char buf[MAX_LINE]; /*緩沖區*/
FILE *fp; /*文件指針*/
int len; /*行字元個數*/
if((fp = fopen("test.txt","r")) == NULL)
{
perror("fail to read");
exit (1) ;
}
while(fgets(buf,MAX_LINE,fp) != NULL)
{
len = strlen(buf);
buf[len-1] = '