ホームページ  >  記事  >  バックエンド開発  >  Golangで画像を表示する例

Golangで画像を表示する例

PHPz
PHPzオリジナル
2023-03-30 09:12:461940ブラウズ

コンピュータとインターネットの急速な発展に伴い、ほとんどのアプリケーション ソフトウェアは特定の機能を実行するために画像という媒体を必要とします。プログラミング言語では、画像を処理するためのさまざまな API や関数が提供されています。

Golang は、効率的で信頼性が高く、シンプルなソフトウェアを開発するために設計された新しいプログラミング言語です。これは比較的新しい言語ですが、ますます多くのアプリケーションで選択される言語となっています。この記事ではGolangで画像を表示する方法を紹介します。

  1. 関連ライブラリのインポート

画像の処理を開始する前に、関連ライブラリをインポートする必要があります。 Golang では、画像を png 形式で表示するには image および image/png パッケージを使用し、画像を jpeg 形式で表示するには image/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 に置き換えるだけです。 ( ファイル)###。

    ウィンドウの作成
画像を取得したら、それを画面に表示する必要があります。 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 を変更することでウィンドウ サイズを設定できます。

    画像を描画する
キャンバスを取得したら、

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)
画像を描画するには、画像の位置を指定する必要があります。この例では、キャンバスの左上隅に画像を描画してから、画像全体を描画します。

    ウィンドウの表示
最後に、ウィンドウを表示する必要があります。以下は、ウィンドウを表示するコードです。

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() を使用して、ウィンドウを閉じる必要があるかどうかを確認します。

概要

上記は、Golang で画像を表示する方法の全体的なプロセスです。いくつかの簡単な手順で、Golang を使用して画像を png または jpeg 形式で表示できます。この記事は単なるデモンストレーションであり、このプロセスを使用してより複雑な操作を実現できます。この記事を通じて、Golang がどのように画像を処理するのかについて理解を深めていただければ幸いです。

以上がGolangで画像を表示する例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。