在 Go 语言中,可以使用标准库中的 image 和 image/draw 包来裁剪图片。

首先,需要将图片读入内存中:

file, err := os.Open('input.jpg')
if err != nil {
    log.Fatal(err)
}
defer file.Close()

img, _, err := image.Decode(file)
if err != nil {
    log.Fatal(err)
}

接下来,可以使用 image.NewRGBA() 方法创建一个新的 RGBA 图像,然后使用 image/draw 包中的 Draw() 方法将原始图片的一部分复制到新的图像上:

rect := image.Rect(100, 100, 200, 200) // 裁剪区域
dst := image.NewRGBA(rect)

draw.Draw(dst, dst.Bounds(), img, rect.Min, draw.Src)

最后,可以将新图像保存到文件中:

out, err := os.Create('output.jpg')
if err != nil {
    log.Fatal(err)
}
defer out.Close()

jpeg.Encode(out, dst, nil)

完整代码示例:

package main

import (
    "image"
    "image/draw"
    "image/jpeg"
    "log"
    "os"
)

func main() {
    file, err := os.Open('input.jpg')
if err != nil {
        log.Fatal(err)
    }
    defer file.Close()

    img, _, err := image.Decode(file)
if err != nil {
        log.Fatal(err)
    }

    rect := image.Rect(100, 100, 200, 200) // 裁剪区域
dst := image.NewRGBA(rect)

draw.Draw(dst, dst.Bounds(), img, rect.Min, draw.Src)

    out, err := os.Create('output.jpg')
if err != nil {
        log.Fatal(err)
    }
    defer out.Close()

    jpeg.Encode(out, dst, nil)
}
Golang 图片裁剪:使用标准库裁剪图片

原文地址: http://www.cveoy.top/t/topic/nQlx 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录