为了账号安全,请及时绑定邮箱和手机立即绑定

我在 golang 中使用 sdl 并想从窗口中获取像素数据,但这不起作用

我在 golang 中使用 sdl 并想从窗口中获取像素数据,但这不起作用

Go
烙印99 2022-06-27 11:14:04
我想使用 surface.At() 获取像素数据package mainimport (    "fmt"    "github.com/veandco/go-sdl2/sdl")func main() {    var (        winTitle string = "Surface At"        winWidth, winHeight int32 = 1200, 720        window *sdl.Window        renderer *sdl.Renderer        surface *sdl.Surface    )    window, _ = sdl.CreateWindow(winTitle, sdl.WINDOWPOS_CENTERED, sdl.WINDOWPOS_CENTERED, winWidth, winHeight, sdl.WINDOW_SHOWN)    renderer, _ = sdl.CreateRenderer(window, -1, sdl.RENDERER_ACCELERATED)        renderer.SetDrawColor(35, 80, 0, 180)    renderer.Clear()    renderer.Present()    surface, _ = window.GetSurface()        for x := 0; x < int(winWidth); x++ {        for y := 0; y < int(winHeight); y++ {            color := surface.At(x, y)            fmt.Println(color, "color", x, "x", y, "y")        }    }    sdl.Delay(1000)    sdl.Quit()}{35, 80, 0, 180} color 0 x 0 y但它不是返回每个像素的实际颜色 ( ),而是一直返回{0 0 0 255} color 0 x 0 y到最后。如何解决这个问题?或者也许有什么东西可以用来代替surface.At()?
查看完整描述

1 回答

?
holdtom

TA贡献1805条经验 获得超10个赞

我发现出了什么问题,我实际上不得不对表面进行更改。这是代码:


package main


import (

    "fmt"

    "github.com/veandco/go-sdl2/sdl"

)


func main() {

    var (

        winTitle string = "Surface At"

        winWidth, winHeight int32 = 1200, 720

        window *sdl.Window

        surface *sdl.Surface

    )

    

    window, _ = sdl.CreateWindow(winTitle, sdl.WINDOWPOS_CENTERED, sdl.WINDOWPOS_CENTERED, winWidth, winHeight, sdl.WINDOW_SHOWN)

    surface, _ = window.GetSurface()

    surface.FillRect(&sdl.Rect{50, 50, 600, 300}, 39700) //Change color from x - {50; 600}, y - {50; 300}

    

    color1 := surface.At(100, 100)

    color2 := surface.At(5, 5)

    fmt.Printf("%v color at %d x, %d y\n", color1, 100, 100)

    fmt.Printf("%v color at %d x, %d y\n", color2, 5, 5)

    

    sdl.Delay(4000)

    sdl.Quit()

}

输出是:


{20 155 0 255} 颜色在 100 x、100 y


{0 0 0 255} 颜色在 5 x, 5 y


查看完整回答
反对 回复 2022-06-27
  • 1 回答
  • 0 关注
  • 100 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信