以下是一个示例代码,展示了如何使用 image
包创建和操作图像:
package main
import (
"image"
"image/color"
"image/png"
"log"
"os"
)
func main() {
// 创建一个新的图像,尺寸为 200x200
img := image.NewRGBA(image.Rect(0, 0, 200, 200))
// 绘制一个红色的正方形
red := color.RGBA{255, 0, 0, 255}
for x := 50; x < 150; x++ {
for y := 50; y < 150; y++ {
img.Set(x, y, red)
}
}
// 创建一个输出文件
file, err := os.Create("output.png")
if err != nil {
log.Fatal(err)
}
defer file.Close()
// 将图像写入输出文件
err = png.Encode(file, img)
if err != nil {
log.Fatal(err)
}
}
在这个示例中,我们首先导入了需要使用的包,包括 image
、image/color
和 image/png
。
然后,在 main()
函数中,我们使用 image.NewRGBA()
函数创建一个新的 RGBA 图像,尺寸为 200x200。这个函数接受一个 image.Rectangle
参数,定义了图像的边界。
接下来,我们使用嵌套的循环遍历图像的像素,并使用 img.Set()
方法将像素设置为红色。这里我们选择了坐标范围为 (50,50) 到 (150,150) 的区域来绘制一个红色的正方形。
然后,我们创建一个输出文件(这里命名为 “output.png”),并使用 os.Create()
函数创建该文件。如果创建文件时发生错误,我们使用 log.Fatal()
函数输出错误信息并终止程序。我们使用 defer
语句在函数结束时关闭文件。
最后,我们使用 png.Encode()
函数将图像写入输出文件。这个函数接受一个写入器(这里是输出文件)和图像对象,并将图像以 PNG 格式编码写入到写入器中。
要运行这个示例,可以在命令行中使用以下命令:
go run main.go
运行后,会在当前目录下生成一个名为 “output.png” 的图像文件,其中包含一个红色的正方形。
通过使用 image
包,我们可以创建、操作和编码图像。你可以根据需要进行各种图像处理操作,如绘制几何形状、修改像素值、应用滤镜等。