1. 程式人生 > >C語言 實現兩張圖片的拼接

C語言 實現兩張圖片的拼接

在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); }

輸出效果:
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述