本文实例讲述了Go语言图片处理和生成缩略图的方法。分享给大家供大家参考。具体实现方法如下:
复制代码 代码如下:
package main
import (
"fmt"
"os"
"image"
"image/color"
"image/draw"
"image/jpeg"
)
func main() {
f1,err := os.Open("1.jpg")
if err != nil {
panic(err)
}
defer f1.Close()
f2,err := os.Open("2.jpg")
if err != nil {
panic(err)
}
defer f2.Close()
f3,err := os.Create("3.jpg")
if err != nil {
panic(err)
}
defer f3.Close()
m1,err := jpeg.Decode(f1)
if err != nil {
panic(err)
}
bounds := m1.Bounds()
m2,err := jpeg.Decode(f2)
if err != nil {
panic(err)
}
m := image.NewRGBA(bounds)
white := color.RGBA{255,255,255}
draw.Draw(m,bounds,&image.Uniform{white},image.ZP,draw.Src)
draw.Draw(m,m1,image.Rect(100,200,300,600),m2,image.Pt(250,60),draw.Src)
err = jpeg.Encode(f3,m,&jpeg.Options{90})
if err != nil {
panic(err)
}
fmt.Printf("ok\n")
}
import (
"fmt"
"os"
"image"
"image/color"
"image/draw"
"image/jpeg"
)
func main() {
f1,err := os.Open("1.jpg")
if err != nil {
panic(err)
}
defer f1.Close()
f2,err := os.Open("2.jpg")
if err != nil {
panic(err)
}
defer f2.Close()
f3,err := os.Create("3.jpg")
if err != nil {
panic(err)
}
defer f3.Close()
m1,err := jpeg.Decode(f1)
if err != nil {
panic(err)
}
bounds := m1.Bounds()
m2,err := jpeg.Decode(f2)
if err != nil {
panic(err)
}
m := image.NewRGBA(bounds)
white := color.RGBA{255,255,255}
draw.Draw(m,bounds,&image.Uniform{white},image.ZP,draw.Src)
draw.Draw(m,m1,image.Rect(100,200,300,600),m2,image.Pt(250,60),draw.Src)
err = jpeg.Encode(f3,m,&jpeg.Options{90})
if err != nil {
panic(err)
}
fmt.Printf("ok\n")
}
希望本文所述对大家的Go语言程序设计有所帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。