This is a creation in Article, where the information may have evolved or changed.
Test address
Http://127.0.0.1:6789/1000/789.png
Http://127.0.0.1:6789/400/789.png
The middle number is the picture size
Package Main
Import(
"FMT"
"Graphics"
"image"
"Image/png"
"Log"
"Net/http"
"OS"
"StrConv"
"strings"
)
FuncMain (){
http. Handlefunc("/",doimagehandler)
http. Listenandserve("127.0.0.1:6789",nil)
}func doimagehandler ( w http Responsewriter R * http. Request) {
     fmt Printf ( " %q \n " strings Split ( r Url Path "/"
     url := strings . Split ( r Url Path "/" )
if len (URL)! = 3 {
return
}
newdx,uerr: =strconv. Atoi(url[1])
ifuerr! = Nil{
log. Fatal(uerr)
}
src,err: =loadimage(url[2 ])
bound: =src. Bounds()
DX: =bound. Dx()
dy: =bound. Dy()
if Err! =Nil {
log. Fatal(err)
}
// thumbnail size
DST: =image. Newrgba(image. Rect(0,0,newdx, NEWDX*dy/dx))
// generate thumbnails, equal scale
err=graphics. Scale(DST,src)
if Err! =Nil {
log. Fatal(err)
}
Header: =w. Header()
header. Add("Content-type","Image/jpeg")
png. Encode(w,DST)
}
Load Imagedecodesan Image from afile of image.
Funcloadimage (pathstring)(img Image. Image,errerror){
file,err: =os. Open(path)
if Err! =Nil {
return
}
deferfile. Close()
img,_,err=image. Decode(file)
return
}
Copyright NOTICE: This article for Bo Master original article, without Bo Master permission not reproduced.