Heim > Backend-Entwicklung > Golang > Wie zeichnet man Golang?

Wie zeichnet man Golang?

WBOY
Freigeben: 2023-05-27 13:49:44
Original
1400 Leute haben es durchsucht

Wie zeichnet man Bilder in Golang?

Golang ist eine effiziente, prägnante und leistungsstarke Programmiersprache. Aufgrund seiner einfachen und klaren Syntaxstruktur und effizienten Ausführungsgeschwindigkeit beginnen immer mehr Programmierer, Golang für die Entwicklung zu verwenden. Allerdings bietet Golang selbst nicht viele Zeichenfunktionen. Wie zeichnet man also in Golang? Dieser Artikel bietet eine detaillierte Einführung in das Zeichnen in Golang.

1. Grundlagen des Zeichnens in Golang

  1. Leinwand

Zuerst müssen Sie eine Leinwand erstellen, die sein kann in Golang übergeben Neue Funktion der Bildbibliothek zum Erstellen einer Leinwand. Der Parameter der New-Funktion ist ein Parameter vom Typ image.Rectangle, der zum Festlegen der Größe und des Bereichs der Leinwand verwendet wird.

Hier ist ein Code, der eine Leinwand der Größe 500x500 erstellt:

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)
}
Nach dem Login kopieren
  1. Pinsel und Farbe

Golang The Die Bildbibliothek bietet eine Vielzahl von Pinseln und Farben, und mit der Funktion draw.Draw können Grafiken auf der Leinwand gezeichnet werden. Vor dem Zeichnen müssen Sie Pinsel und Farbe definieren. Hier verwenden wir einen schwarzen Pinsel und eine rote Füllfarbe.

Der folgende Codeausschnitt zeigt, wie man die Pinsel- und Füllfarbe definiert:

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)
Nach dem Login kopieren
  1. Zeichne das Bild

Nachdem wir eine Leinwand erstellt und die Pinsel- und Füllfarbe definiert haben, können wir mit dem Zeichnen von Grafiken beginnen. Beim Zeichnen müssen wir Objekte in der Bildbibliothek verwenden, um Grafiken zu erstellen. Die Bildbibliothek bietet eine Vielzahl von Objekten wie Punkte, Linien, Rechtecke, Kreise und Text.

Der folgende Code zeigt, wie man mit der Create-Funktion einen Kreis erstellt und auf die Leinwand zeichnet:

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)
        }
    }
}
Nach dem Login kopieren

2 Erweiterte Zeichenfunktionen in Golang#🎜🎜 ## 🎜🎜#Die obige Zeichenmethode kann grundlegende Zeichenanforderungen erfüllen, aber einige fortgeschrittene Zeichenanforderungen, wie das Zeichnen komplexer Grafiken oder das Hinzufügen von Schatten, kann diese einfache Zeichenmethode nicht erfüllen. Im Folgenden sind die erweiterten Zeichenfunktionen aufgeführt, die in Golang bereitgestellt werden:

Eine gerade Linie zeichnen
  1. Eine gerade Linie ist das grundlegendste Zeichenobjekt und die Funktion zum Zeichnen einer geraden Linie in Golang für DrawLine. Zu seinen Parametern gehören Quellpunkt, Zielpunkt und Pinselfarbe.

Das Folgende ist ein Codebeispiel zum Zeichnen einer geraden Linie:

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)
Nach dem Login kopieren

Zeichnen eines Bogens
  1. Zeichnen ist bereitgestellt in Golang Die Bogenfunktion DrawArc. Zu seinen Parametern gehören Mittelpunkt, Radius, Startwinkel, Endwinkel und Pinselfarbe.

Das Folgende ist ein Codebeispiel zum Zeichnen eines Bogens:

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)
Nach dem Login kopieren

Text zeichnen
  1. Verwenden Sie in Golang Die Bildbibliothek erleichtert das Zeichnen von Text auf der Leinwand. Die DrawString-Funktion kann die angegebene Zeichenfolge auf der Leinwand zeichnen. Zu ihren Parametern gehören Schriftart, Schriftgröße, Textinhalt, Zeichenposition und Schriftfarbe des gezeichneten Textes.

Das Folgende ist ein Codebeispiel zum Zeichnen von Text:

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)
Nach dem Login kopieren

3. Fazit

Das Obige ist die Einführung dieses Artikels zum Zeichnen in Golang . Golang selbst bietet nicht viele Zeichenfunktionen, aber die Bildbibliothek in Golang bietet grundlegende Zeichenfunktionen. Wir können einige erweiterte Zeichenfunktionen entsprechend unseren Anforderungen selbst kapseln, um einige erweiterte Zeichenanforderungen zu erfüllen. Ich hoffe, dass dieser Artikel den Lesern helfen kann, das Zeichnen in Golang besser zu verstehen.

Das obige ist der detaillierte Inhalt vonWie zeichnet man Golang?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage