C語(yǔ)言中使用JSON傳輸圖片需要將圖片轉(zhuǎn)換成二進(jìn)制數(shù)據(jù)流,然后將數(shù)據(jù)流經(jīng)過(guò)Base64編碼后再打包成JSON數(shù)據(jù)格式進(jìn)行傳輸。
#include#include #include #include "cJSON.h" //讀取文件并轉(zhuǎn)換為Base64 char* readFileToBase64(char *filePath){ FILE *fp = fopen(filePath, "rb"); if (fp == NULL){ return NULL; } fseek(fp, 0, SEEK_END); int fileSize = ftell(fp); fseek(fp, 0, SEEK_SET); char* buffer = (char*)malloc(fileSize); if (buffer == NULL){ fclose(fp); return NULL; } memset(buffer, 0, fileSize); fread(buffer, 1, fileSize, fp); fclose(fp); char *base64Data = base64_encode((const unsigned char*)buffer, fileSize); free(buffer); return base64Data; } //主函數(shù) int main(){ //讀取圖片文件,并轉(zhuǎn)換為Base64編碼 char *base64Data = readFileToBase64("test.jpg"); if (base64Data == NULL){ printf("讀取文件錯(cuò)誤\n"); return -1; } //生成JSON數(shù)據(jù) cJSON *root = cJSON_CreateObject(); cJSON_AddStringToObject(root, "type", "image"); cJSON_AddStringToObject(root, "base64Data", base64Data); //釋放內(nèi)存 cJSON_Delete(root); free(base64Data); return 0; }
以上是C語(yǔ)言中使用JSON傳輸圖片的簡(jiǎn)要介紹,可以根據(jù)實(shí)際需求進(jìn)行代碼編寫(xiě)。
上一篇mysql讀取順序怎么看
下一篇vue $ajax