Cara melukis golang

WBOY
Lepaskan: 2023-05-27 13:49:44
asal
1364 orang telah melayarinya

Bagaimana untuk melukis gambar di Golang?

Golang ialah bahasa pengaturcaraan yang cekap, ringkas dan berprestasi tinggi. Oleh kerana struktur sintaksnya yang ringkas dan jelas serta kelajuan pelaksanaan yang cekap, semakin ramai pengaturcara mula menggunakan Golang untuk pembangunan. Walau bagaimanapun, Golang sendiri tidak menyediakan banyak fungsi lukisan. Jadi, bagaimana untuk melukis di Golang? Artikel ini akan memberikan pengenalan terperinci kepada lukisan di Golang.

1. Asas lukisan di Golang

  1. Kanvas

Mula-mula anda perlu mencipta kanvas di Golang, anda boleh menciptanya melalui Baharu fungsi kanvas perpustakaan imej. Parameter fungsi Baharu ialah imej. Parameter jenis segi empat tepat, yang digunakan untuk menetapkan saiz dan julat kanvas.

Berikut ialah kod yang mencipta kanvas bersaiz 500x500:

package main

import (
    "image"
    "image/color"
    "image/png"
    "os"
)

func main() {
    width, height := 500, 500
    img := image.NewRGBA(image.Rect(0, 0, width, height))
    file, _ := os.Create("output.png")
    defer file.Close()
    png.Encode(file, img)
}
Salin selepas log masuk
  1. Berus dan Warna

Pustaka imej di Golang menyediakan pelbagai berus dan warna, grafik boleh dilukis pada kanvas melalui fungsi draw.Draw. Sebelum melukis, anda perlu menentukan berus dan warna. Di sini kami menggunakan berus hitam dan warna isian merah.

Coretan kod berikut menunjukkan cara mentakrifkan berus dan warna isian:

import (
    "image/color"
    "image/draw"
)
//创建画笔和填充色
pen := color.Black
fillColor := color.RGBA{255, 0, 0, 255}

//使用画笔填充整个画布
draw.Draw(img, img.Bounds(), &image.Uniform{fillColor}, image.Point{}, draw.Src)
Salin selepas log masuk
  1. Lukis gambar

Sekarang kami telah mencipta kanvas dan menentukan Dengan warna berus dan isian, kita boleh mula melukis bentuk. Semasa melukis, kita perlu menggunakan objek dalam perpustakaan imej untuk mencipta grafik. Pustaka imej menyediakan pelbagai objek, seperti titik, garis, segi empat tepat, bulatan dan teks.

Kod berikut menunjukkan cara menggunakan fungsi cipta untuk mencipta bulatan dan melukisnya pada kanvas:

import (
    "image"
    "image/color"
    "image/draw"
    "math"
)

//定义画笔和填充色
pen := color.Black
fillColor := color.RGBA{255, 0, 0, 255}

//在画布上绘制圆形
cx, cy, radius := 250, 250, 100
for x := -radius; x < radius; x++ {
    for y := -radius; y < radius; y++ {
        if math.Pow(float64(x), 2)+math.Pow(float64(y), 2) < math.Pow(float64(radius), 2) {
            img.Set(cx+x, cy+y, fillColor)
        }
    }
}
Salin selepas log masuk

2. Fungsi lukisan lanjutan di Golang

Di Atas Lukisan kaedah boleh memenuhi keperluan asas lukisan, tetapi untuk beberapa keperluan lukisan lanjutan, seperti melukis grafik kompleks atau menambah bayang-bayang, kaedah lukisan mudah ini tidak dapat memuaskan. Berikut ialah fungsi lukisan lanjutan yang disediakan dalam Golang:

  1. Lukis garis lurus

Garisan lurus ialah objek lukisan yang paling asas di Golang ialah DrawLine. Parameternya termasuk titik sumber, titik sasaran dan warna berus.

Berikut ialah contoh kod untuk melukis garis lurus:

import (
    "image/color"
    "golang.org/x/image/draw"
)

point1 := image.Point{100, 100}
point2 := image.Point{200, 200}
pen := &image.Uniform{color.RGBA{255, 0, 0, 255}}

drawLine(img, point1, point2, pen)
Salin selepas log masuk
  1. Melukis lengkok

Golang menyediakan fungsi DrawArc untuk melukis lengkok. Parameternya termasuk titik tengah, jejari, sudut permulaan, sudut penamat dan warna berus.

Berikut ialah contoh kod untuk melukis arka:

import (
    "math"
    "image/color"
    "golang.org/x/image/draw"
)

centerX, centerY := 250, 250
radius := 100
startAngle := 60.0
endAngle := 120.0
pen := &image.Uniform{color.RGBA{255, 0, 0, 255}}

draw.Arc(img, centerX, centerY, radius, startAngle*math.Pi/180, endAngle*math.Pi/180, pen)
Salin selepas log masuk
  1. Melukis teks

Di Golang, pustaka imej boleh digunakan untuk melukis dengan mudah teks Lukis pada kanvas. Fungsi DrawString boleh melukis rentetan yang ditentukan pada kanvas Parameternya termasuk fon, saiz fon, kandungan teks, kedudukan lukisan dan warna fon teks yang dilukis.

Berikut ialah contoh kod untuk melukis teks:

import (
    "image/color"
    "golang.org/x/image/font"
    "golang.org/x/image/font/opentype"
    "golang.org/x/image/math/fixed"
    "golang.org/x/image/draw"
    "io/ioutil"
)

//读取字体文件
fontBytes, _ := ioutil.ReadFile("path/to/fontfile.ttf")

//解析字体文件
font, _ := opentype.Parse(fontBytes)

//创建字体对象
f := opentype.Face(font, &opentype.FaceOptions{Size: 60, DPI: 72, Hinting: font.Hinting()})

//定义绘制文本的位置和颜色
text := "Hello, Golang!"
pen := &image.Uniform{color.RGBA{0, 0, 255, 255}}
pt := fixed.P(50, 200)

//在画布上绘制文本
draw.Draw(img, img.Bounds(), &image.Uniform{color.White}, image.Point{}, draw.Src)
drawString(img, f, text, pt, pen)
Salin selepas log masuk

3. Kesimpulan

Di atas ialah pengenalan lukisan di Golang dalam artikel ini. Golang sendiri tidak menyediakan banyak fungsi lukisan, tetapi perpustakaan imej di Golang menyediakan fungsi lukisan asas. Kita boleh merangkum sendiri beberapa fungsi lukisan lanjutan mengikut keperluan kita untuk memenuhi beberapa keperluan lukisan lanjutan. Saya harap artikel ini dapat membantu pembaca lebih memahami lukisan di Golang.

Atas ialah kandungan terperinci Cara melukis golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan