我正在編寫一個(gè)帶有一些簡(jiǎn)單圖像處理的微服務(wù)。當(dāng)我將處理過(guò)的圖像發(fā)送回用戶時(shí),我必須在通過(guò)緩沖區(qū)寫入之前對(duì)其進(jìn)行正確編碼。我可以很容易地檢測(cè)到格式,所以這不是問(wèn)題。目前我使用我的格式字符串并這樣做:buffer := new(bytes.Buffer)switch format { //format is just a string as returned by image.Decode()case "jpeg": err := jpeg.Encode(buffer, img, nil) //img is just an image.Image if err != nil { //Do some error handling }case "png": err := png.Encode(buffer, img) if err != nil { //Do some error handling }//and so on...現(xiàn)在這工作得很好,當(dāng)我開(kāi)始認(rèn)為我一定在這里錯(cuò)過(guò)了一些東西時(shí),我正準(zhǔn)備將它拆分成我自己的函數(shù)。沒(méi)有像image.Encode(buffer, image, format).編寫它并不是很麻煩,但是如果我開(kāi)始重新實(shí)現(xiàn)核心語(yǔ)言功能,我的代碼很快就會(huì)變得不必要地笨拙。如果它只是不存在,因?yàn)?go 是一種占用空間很小的整潔的語(yǔ)言,我很高興。
Go標(biāo)準(zhǔn)庫(kù)中是否有一個(gè)函數(shù)可以將緩沖區(qū)編碼為go中的任何圖像格式
料青山看我應(yīng)如是
2021-10-18 13:56:49