C語言 實現兩張圖片的拼接
阿新 • • 發佈:2019-02-08
在Linux中用gcc編譯
這個程式碼的邏輯其實蠻簡單的,就是用read()函式將對應的要拼接的部分,讀入到一塊兒快取中(定義一個數組就行),最後用write()函式將切出來的對應的部分輸出到要拼接的圖片檔案就大功告成。
值得注意的有兩點:1、圖片在必須用.bmp格式
2、注意你的電腦的圖片掃描方式是由上往下的還是由下往上 的 , 這 點會導致輸入快取的部分,和輸出到指定檔案的位置會和預期的不一樣
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
int main()
{
int id1 = open("1.bmp", O_RDWR);
if(-1 == id1)
{
perror("error1~!");
return -1;
}
int id2 = open("2.bmp", O_RDWR);
if(-1 == id2)
{
perror("error2~!" );
return -1;
}
int id3 = open("3.bmp", O_RDWR);
if(-1 == id3)
{
perror("error3~!");
return -1;
}
char buf1[500*444*3/2] = {0};
char buf2[500*444*3/2] = {0};
read(id2, buf2, sizeof(buf2));
write (id3, buf2, sizeof(buf2));
lseek(id1, sizeof(buf1), SEEK_SET);
read(id1, buf1, sizeof(buf1));
write(id3, buf1, sizeof(buf1));
close(id1);
close(id2);
close(id3);
}
輸出效果: