panlei
2019-06-25 b334e8872e8598ea301db9b891ab58c01e5618f0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package util
 
import (
    "bytes"
    "fmt"
    "image"
    "image/jpeg"
    "reflect"
)
// 按尺寸去切图
func subimg(dbyte []byte,x0,y0,x1,y1 int,) []byte{
 
    bbb := bytes.NewBuffer(dbyte)                           // 必须加一个buffer 不然没有read方法就会报错
    m, _, _ := image.Decode(bbb)                          // 图片文件解码
    rgbImg := m.(*image.YCbCr)
    subImg := rgbImg.SubImage(image.Rect(x0, y0, x1, y1)) //图片裁剪x0 y0 x1 y1
    fmt.Println(reflect.TypeOf(subImg))
    //f, _ := os.Create("./test.jpg")                   //创建文件
    //defer f.Close()                                         //关闭文件
    emptyBuff := bytes.NewBuffer(nil)                 //开辟一个新的空buff
    jpeg.Encode(emptyBuff, subImg, nil)                //img写入到buff
    bytes := emptyBuff.Bytes()
    return bytes
    //f, _ := os.Create("./test.jpg")                   //创建文件
    //defer f.Close()                                         //关闭文件
    //jpeg.Encode(f, subImg, nil)                         //写入文件
}