如何解决在 Fyne 中显示 PNG 图像时的网格重叠问题?

问题描述 投票:0回答:1

我正在开发一个 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 图像?任何帮助或建议将不胜感激!

这就是现在的样子,我正在尝试获取透明背景而不是 PNG 网格:

image go user-interface png fyne
1个回答
0
投票

背景网格确实在您的图像中。要使图像透明,您需要将其删除,使这些像素透明。

© www.soinside.com 2019 - 2024. All rights reserved.