我正在玩Go(這是有史以來(lái)第一次),我想構(gòu)建一個(gè)工具來(lái)從Internet檢索圖像并剪切它們(甚至調(diào)整大?。?,但是我堅(jiān)持第一步。package mainimport ( "fmt" "http")var client = http.Client{}func cutterHandler(res http.ResponseWriter, req *http.Request) { reqImg, err := client.Get("http://www.google.com/intl/en_com/images/srpr/logo3w.png") if err != nil { fmt.Fprintf(res, "Error %d", err) return } buffer := make([]byte, reqImg.ContentLength) reqImg.Body.Read(buffer) res.Header().Set("Content-Length", fmt.Sprint(reqImg.ContentLength)) /* value: 7007 */ res.Header().Set("Content-Type", reqImg.Header.Get("Content-Type")) /* value: image/png */ res.Write(buffer)}func main() { http.HandleFunc("/cut", cutterHandler) http.ListenAndServe(":8080", nil) /* TODO Configurable */}我可以請(qǐng)求圖片(讓我們使用Google徽標(biāo))并獲取圖片的種類和大小。確實(shí),我只是在重新編寫(xiě)圖像(將其視為玩具“代理”),設(shè)置Content-Length和Content-Type并將字節(jié)片寫(xiě)回,但是我在某處弄錯(cuò)了。查看在Chromium 12.0.742.112(90304)上呈現(xiàn)的最終圖像的外觀:我也檢查了下載的文件,它是7007字節(jié)的PNG圖像。如果我們查看請(qǐng)求,它應(yīng)該可以正常工作:GET / cut HTTP / 1.1用戶代理:curl / 7.22.0(i486-pc-linux-gnu)libcurl / 7.22.0 OpenSSL / 1.0.0e zlib / 1.2.3.4 libidn / 1.23 libssh2 / 1.2.8 librtmp / 2.3主機(jī):127.0.0.1:8080接受:/HTTP / 1.1 200 OK內(nèi)容長(zhǎng)度:7007內(nèi)容類型:image / png日期:2011年12月27日星期二19:51:53 GMT[PNG數(shù)據(jù)]您認(rèn)為我在這里做錯(cuò)了什么?免責(zé)聲明:我在抓癢,所以我可能使用了錯(cuò)誤的工具:)無(wú)論如何,我可以在Ruby上實(shí)現(xiàn)它,但在嘗試之前請(qǐng)嘗試一下。更新:仍在抓癢,但是...我認(rèn)為這將是一個(gè)很好的并行項(xiàng)目,因此我將其打開(kāi)https://github.com/imdario/go-lazor如果它沒(méi)有用,請(qǐng)?jiān)L問(wèn)http://github.com/imdario/go-lazor。至少有人可以從開(kāi)發(fā)它的參考文獻(xiàn)中找到有用性。他們是給我的。
- 2 回答
- 0 關(guān)注
- 382 瀏覽
添加回答
舉報(bào)
0/150
提交
取消