下面簡單的功能用於HTML時,它被稱爲生成圖像,但是如何用C代碼
void generateHTML (int socket) {
char* message;
// Sends HTTP response header
message = "HTTP/1.0 200 OK\r\n"
"Content-Type: text/html\r\n"
"\r\n";
printf ("about to send=> %s\n", message);
write (socket, message, strlen (message));
message = "<HTML><BODY><P>Hello World.</P></BODY></HTML>\n";
printf ("about to send=> %s\n", message);
write (socket, message, strlen (message));
}
我在網絡瀏覽器的輸出將通過一個簡單的Hello World消息。但是,我想更改它,以便它將顯示一個位圖圖像。我們使用1x1紅色像素作爲我們的bmp。
我迄今爲止所修改了此功能:
void generateHTML (int socket) {
char* message;
// Sends HTTP response header
message = "HTTP/1.0 200 OK\r\n"
"Content-Type: image/bmp\r\n"
"Content-Length: ???WTF???\r\n";
printf ("about to send=> %s\n", message);
write (socket, message, strlen (message));
message = "BMF8\n";
printf ("about to send=> %s\n", message);
write (socket, message, strlen (message));
message = " "; //bmp file data goes here.
printf ("about to send=> %s\n", message);
write (socket, message, strlen (message));
}
從丹的回答引用,在十六進制數據的模樣:
0000000: 424d 3a00 0000 0000 0000 3600 0000 2800 BM:.......6...(.
0000010: 0000 0100 0000 0100 0000 0100 1800 0000 ................
0000020: 0000 0400 0000 130b 0000 130b 0000 0000 ................
0000030: 0000 0000 0000 0000 0000 ..........
但是,我根本無法把那句話裏面分數。我將如何做到這一點?
這並不那麼簡單,請參閱http://en.wikipedia.org/wiki/BMP_file_format – 2011-04-12 06:34:54
我已閱讀wiki文章,但仍遇到問題。只需要有人發佈一個黑色bmp像素的樣子。 – meiryo 2011-04-12 06:36:57
@meiryo:@jcomeau_ictx是對的。這不是微不足道的。如果你沒有時間或者根本不想嘗試理解格式規範,試着搜索一些可以爲你執行工作的有用的庫。 – Heisenbug 2011-04-12 06:42:02