Dengan perkembangan pesat komputer dan Internet, kebanyakan perisian aplikasi memerlukan medium imej untuk melengkapkan fungsi tertentu. Dalam bahasa pengaturcaraan, pelbagai API dan fungsi disediakan untuk memproses imej.
Golang ialah bahasa pengaturcaraan baharu yang direka untuk membangunkan perisian yang cekap, boleh dipercayai dan mudah. Walaupun ia adalah bahasa yang agak baru, ia telah menjadi bahasa pilihan dalam peningkatan bilangan aplikasi. Artikel ini akan memperkenalkan cara memaparkan imej di Golang.
Sebelum kami mula memproses imej, kami perlu mengimport perpustakaan berkaitan. Di Golang, kami menggunakan pakej image
dan image/png
untuk memaparkan imej dalam format png dan menggunakan image/jpeg
untuk memaparkan imej dalam format jpeg. Berikut ialah kod untuk mengimport pustaka:
import ( "fmt" "image" "image/png" "image/jpeg" "os" )
Membaca imej ialah langkah pertama untuk memaparkan imej. Di Golang, kita boleh menggunakan fungsi image.Decode()
untuk membaca imej daripada fail. Fungsi ini mengembalikan antara muka image.Image
, yang mewakili imej. Berikut ialah kod untuk membaca imej dalam format 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) }
Jika anda ingin memaparkan imej dalam format jpeg, cuma gantikan png.Decode(file)
dengan jpeg.Decode(file)
.
Setelah kita mempunyai imej, kita perlu memaparkannya pada skrin. Di Golang, kita boleh mencipta tingkap menggunakan pakej gonum.org/v1/plot/vg
. Berikut ialah kod untuk mencipta tetingkap:
import ( "gonum.org/v1/plot/vg" ) // 设置窗口大小 width := 600 height := 800 canvas := vg.NewScaledCanvas(vg.Length(width), vg.Length(height))
Kita boleh menetapkan saiz tetingkap dengan mengubah suai width
dan height
.
Setelah kita mempunyai kanvas, kita boleh menggunakan fungsi DrawImage()
untuk melukis imej ke kanvas. Berikut ialah kod untuk melukis imej:
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)
Untuk melukis imej, kita perlu menentukan kedudukan imej. Dalam contoh ini, kami melukis imej di sudut kiri atas kanvas dan kemudian melukis keseluruhan imej.
Akhir sekali, kita perlu memaparkan tetingkap kita. Berikut ialah kod untuk memaparkan tetingkap:
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() }
Untuk memaparkan tetingkap, kami menggunakan glfw
untuk mencipta tetingkap dan melukis kanvas pada tetingkap. Akhir sekali, kami menggunakan window.ShouldClose()
untuk menyemak sama ada tetingkap perlu ditutup.
Ringkasan
Di atas adalah keseluruhan proses bagaimana untuk memaparkan imej dalam Golang Dengan beberapa langkah mudah, kita boleh menggunakan Golang untuk memaparkan imej dalam format png atau jpeg. Artikel ini hanyalah demonstrasi mudah, operasi yang lebih kompleks boleh dicapai menggunakan proses ini. Saya berharap melalui artikel ini anda dapat memahami dengan lebih mendalam tentang cara Golang memproses imej.
Atas ialah kandungan terperinci Contoh cara memaparkan gambar di Golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!