Heim >Backend-Entwicklung >Golang >Beispiele für die Anzeige von Bildern in Golang

Beispiele für die Anzeige von Bildern in Golang

PHPz
PHPzOriginal
2023-03-30 09:12:462007Durchsuche

Angesichts der rasanten Entwicklung von Computern und des Internets benötigen die meisten Anwendungsprogramme das Medium Bilder, um bestimmte Funktionen auszuführen. In Programmiersprachen werden verschiedene APIs und Funktionen zur Verarbeitung von Bildern bereitgestellt.

Golang ist eine neue Programmiersprache, die für die Entwicklung effizienter, zuverlässiger und einfacher Software entwickelt wurde. Obwohl es sich um eine relativ neue Sprache handelt, ist sie in immer mehr Anwendungen zur Sprache der Wahl geworden. In diesem Artikel wird erläutert, wie Bilder in Golang angezeigt werden.

  1. Zugehörige Bibliotheken importieren

Bevor wir mit der Verarbeitung von Bildern beginnen, müssen wir zugehörige Bibliotheken importieren. In Golang verwenden wir die Pakete image und image/png, um Bilder im PNG-Format anzuzeigen, und image/jpeg, um Bilder im JPEG-Format anzuzeigen. Bild. Hier ist der Code zum Importieren der Bibliothek: imageimage/png包来显示png格式的图片,并使用image/jpeg来显示jpeg格式的图片。这里是导入库的代码:

import (
    "fmt"
    "image"
    "image/png"
    "image/jpeg"
    "os"
)
  1. 读取图片

读取图片是显示图片的第一步。在Golang中,我们可以使用image.Decode()函数从文件中读取图片。这个函数返回一个image.Image接口,该接口表示图像。以下是读取png格式图片的代码:

file, err := os.Open("image.png")
if err != nil {
    panic(err)
}
defer file.Close()

img, err := png.Decode(file)
if err != nil {
    panic(err)
}

如果你想显示jpeg格式的图片,只需要将png.Decode(file)替换为jpeg.Decode(file)

  1. 创建窗口

一旦我们得到了图片,我们需要在屏幕上显示它。在Golang中,我们可以使用gonum.org/v1/plot/vg包创建窗口。以下是创建窗口的代码:

import (
    "gonum.org/v1/plot/vg"
)

// 设置窗口大小
width := 600
height := 800

canvas := vg.NewScaledCanvas(vg.Length(width), vg.Length(height))

我们可以通过修改widthheight来设置窗口大小。

  1. 绘制图片

一旦我们有了画布,我们可以使用DrawImage()函数将图片绘制到画布上。以下是绘制图片的代码:

import (
    "gonum.org/v1/plot/vg/draw"
)

// 计算图片的位置
x := vg.Points(0)
y := vg.Points(0)

// 将图片绘制到画布上
draw.CropTop(draw.CropRight(draw.CropBottom(draw.CropLeft(canvas, x), y), vg.Length(img.Bounds().Max.X)), vg.Length(img.Bounds().Max.Y)), img)

要绘制图片,我们需要指定图片的位置。在本例中,我们将图片绘制在画布的左上角,然后绘制整个图片。

  1. 显示窗口

最后,我们需要将我们的窗口显示出来。以下是显示窗口的代码:

import (
    "github.com/go-gl/glfw/v3.2/glfw"
)

// 创建窗口并显示
window := glfw.NewWindow(width, height, "My Window", nil, nil)
window.SetTitle("Display Image Demo")

// 显示画布
window.SetSizeCallback(func(w *glfw.Window, width int, height int) {
    canvas.SetCanvasSize(vg.Length(width), vg.Length(height))
})

window.MakeContextCurrent()
for !window.ShouldClose() {
    window.SwapBuffers()
    glfw.PollEvents()
}

要显示窗口,我们使用glfw来创建窗口并将画布绘制到窗口上。最后,我们使用window.ShouldClose()rrreee

    Bilder lesen

    Das Lesen von Bildern ist der erste Schritt zum Anzeigen von Bildern. In Golang können wir die Funktion image.Decode() verwenden, um Bilder aus Dateien zu lesen. Diese Funktion gibt eine image.Image-Schnittstelle zurück, die ein Bild darstellt. Das Folgende ist der Code zum Lesen von Bildern im PNG-Format:

    rrreee🎜 Wenn Sie Bilder im JPEG-Format anzeigen möchten, ersetzen Sie einfach png.Decode(file) durch jpeg.Decode(file) . 🎜<ol start="3">🎜Erstellen des Fensters🎜🎜🎜Sobald wir das Bild haben, müssen wir es auf dem Bildschirm anzeigen. In Golang können wir das Paket <code>gonum.org/v1/plot/vg verwenden, um Fenster zu erstellen. Das Folgende ist der Code zum Erstellen eines Fensters: 🎜rrreee🎜Wir können die Fenstergröße festlegen, indem wir width und height ändern. 🎜
      🎜Zeichnen Sie ein Bild🎜🎜🎜Sobald wir die Leinwand haben, können wir die Funktion DrawImage() verwenden, um das Bild auf die Leinwand zu zeichnen. Hier ist der Code zum Zeichnen des Bildes: 🎜rrreee🎜Um das Bild zu zeichnen, müssen wir die Position des Bildes angeben. In diesem Beispiel zeichnen wir das Bild in der oberen linken Ecke der Leinwand und zeichnen dann das gesamte Bild. 🎜
        🎜Fenster anzeigen🎜🎜🎜Zuletzt müssen wir unser Fenster anzeigen. Hier ist der Code zum Anzeigen des Fensters: 🎜rrreee🎜Um das Fenster anzuzeigen, verwenden wir glfw, um das Fenster zu erstellen und die Leinwand auf das Fenster zu zeichnen. Abschließend prüfen wir mit window.ShouldClose(), ob das Fenster geschlossen werden muss. 🎜🎜Zusammenfassung🎜🎜Das Obige ist der gesamte Prozess zum Anzeigen von Bildern in Golang. Mit ein paar einfachen Schritten können wir Golang verwenden, um Bilder im PNG- oder JPEG-Format anzuzeigen. Bei diesem Artikel handelt es sich lediglich um eine einfache Demonstration. Mit diesem Verfahren können komplexere Vorgänge ausgeführt werden. Ich hoffe, dass Sie durch diesen Artikel ein tieferes Verständnis dafür erhalten, wie Golang Bilder verarbeitet. 🎜

Das obige ist der detaillierte Inhalt vonBeispiele für die Anzeige von Bildern in Golang. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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