golang缩略图

来源:转载

今天研究了golang生成缩略图的相关知识,在网上找到一篇不错的相关博客,博客地址:http://www.cnblogs.com/ghj1976/p/3445507.html。 有个注意事项这里提醒一下: 官方文档原话: Image接口可以通过调用如NewRGBA和NewPaletted函数等获得;也可以通过调用Decode函数解码包含GIF、JPEG或PNG格式图像数据的输入流获得。解码任何具体图像类型之前都必须注册对应类型的解码函数。注册过程一般是作为包初始化的副作用,放在包的init函数里。因此,要解码JPG图像,只需在程序的main包里嵌入如下代码: import _ “image/JPG” _表示导入包但不使用包中的变量/函数/类型,只是为了包初始化函数的副作用。

整理了一下代码:

package mainimport ( "code.google.com/p/graphics-go/graphics" "image" _ "image/jpeg" //必须import,否则会出现:unknown format,其余类似 "image/png" "log" "os")//读取文件func LoadImage(path string) (img image.Image, err error) { file, err := os.Open(path) if err != nil { log.Fatal("open file fail:", err) return } defer file.Close() img, _, err = image.Decode(file) //解码图片 return}//保存文件func SaveImage(path string, img image.Image) (err error) { imgfile, err := os.Create(path) defer imgfile.Close() err = png.Encode(imgfile, img) //编码图片 if err != nil { log.Fatal("Save fail:", err) } return}func main() { src, err := LoadImage("1.jpg") if err != nil { log.Fatal("open fail:", err) } dst := image.NewRGBA(image.Rect(0, 0, 100, 100)) err = graphics.Scale(dst, src) //缩小图片 if err != nil { log.Fatal(err) } SaveImage("thumbnailimg.png", dst)}

版权声明:转载请注明博客来源,谢谢。



分享给朋友:
您可能感兴趣的文章:
随机阅读: