我正在开发一个 Go 应用程序,使用
fyne
库来创建图形用户界面。当我尝试显示 PNG 图像时,图像顶部会出现网格覆盖层。我尝试了不同的方法来解码和显示图像,但网格仍然存在。这是我的代码的简化版本:
package main
import (
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/app"
"fyne.io/fyne/v2/canvas"
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/widget"
"image/png"
"os"
)
func main() {
myApp := app.New()
myWindow := myApp.NewWindow("Image Viewer")
// Open the image file
file, err := os.Open("path/to/image.png") // Set path
if err != nil {
fyne.LogError("Failed to open image", err)
return
}
defer file.Close()
// Decode the image
img, err := png.Decode(file)
if err != nil {
fyne.LogError("Failed to decode image", err)
return
}
// Create a canvas image from the decoded image
imageCanvas := canvas.NewImageFromImage(img)
imageCanvas.FillMode = canvas.ImageFillContain
imageCanvas.SetMinSize(fyne.NewSize(400, 300))
// Create content container
content := container.NewVBox(
widget.NewLabel("Here is your image:"),
imageCanvas,
)
// Set the content and size
myWindow.SetContent(content)
myWindow.Resize(fyne.NewSize(800, 600))
myWindow.ShowAndRun()
}
我还尝试使用canvas.ImageFillStretch和canvas.ImageFillOriginal作为FillMode,尝试使用canvas.NewImageFromFile获取图像,但都没有解决问题。如何解决此网格覆盖问题并在 fyne 中正确显示 PNG 图像?任何帮助或建议将不胜感激!
背景网格确实在您的图像中。要使图像透明,您需要将其删除,使这些像素透明。