小编efe*_*fel的帖子

Golang如何将图像连接/附加到彼此

Go具有出色的图像处理和数据库,但是我在从较小的图像创建一个大图像时遇到了麻烦.有没有人知道如何在Golang中获取两个png或jpeg文件并将它们连接起来形成一个包含两个(或更多)文件的大图像?

我正在读这样的png文件:

imgFile, err := os.Open(path)
if err != nil {
    return Image{}, err
}
img, _, err := image.Decode(imgFile)
if err != nil {
    return Image{}, err
}

rgba := image.NewRGBA(img.Bounds())
if rgba.Stride != rgba.Rect.Size().X*4 {
    return Image{}, fmt.Errorf("unsupported stride")
}
draw.Draw(rgba, rgba.Bounds(), img, image.Point{0, 0}, draw.Src)
Run Code Online (Sandbox Code Playgroud)

我对如何获取这个png RGBA数据并与其他RGBA数据连接和/或将其组合成"空"图像感到困惑.

graphics png image go

10
推荐指数
3
解决办法
4729
查看次数

附加不好的表现..为什么?

我目前正在使用GoLang创建游戏.我在测量FPS.我注意到使用for循环附加到切片的7 fps丢失如下:

vertexInfo := Opengl.OpenGLVertexInfo{}

for i := 0; i < 4; i = i + 1 {
    vertexInfo.Translations = append(vertexInfo.Translations, float32(s.x), float32(s.y), 0)
    vertexInfo.Rotations = append(vertexInfo.Rotations, 0, 0, 1, s.rot)
    vertexInfo.Scales = append(vertexInfo.Scales, s.xS, s.yS, 0)
    vertexInfo.Colors = append(vertexInfo.Colors, s.r, s.g, s.b, s.a)

}
Run Code Online (Sandbox Code Playgroud)

我正在为每个精灵,每次抽奖做这个.问题是为什么我只是循环一次并将相同的东西添加到这些切片中,从而获得如此巨大的性能损失?有没有更有效的方法来做到这一点?这并不像我正在添加大量数据.每个切片包含大约16个元素,如上所示(4 x 4).

当我简单地将所有16个元素放在一个中时,[]float32{1..16}fps会提高大约4个.

更新:我对每个追加进行了基准测试,似乎每个追踪都需要1个fps才能执行..考虑到这些数据非常静态,这似乎很多..我只需要4次迭代......

更新: 添加了github repo https://github.com/Triangle345/GT

performance append go slice

7
推荐指数
1
解决办法
6580
查看次数

OpenGL 多个 Sampler2D(数组)示例?

我发现令人惊讶的是,很难找到 sampler2d 数组的示例,例如

uniform sampler2D myTextureSampler[5];
Run Code Online (Sandbox Code Playgroud)

如何存储这个的统一位置?:

gl.GetUniformLocation(program, "myTextureSampler")
Run Code Online (Sandbox Code Playgroud)

一个人会简单地使用:

gl.GetUniformLocation(program, "myTextureSampler[0]")
gl.GetUniformLocation(program2, "myTextureSampler[2]")
Run Code Online (Sandbox Code Playgroud)

如何使用这样的多个纹理:

gl.BindTexture(gl.TEXTURE_2D, 1)
gl.BindTexture(gl.TEXTURE_2D, 2)
Run Code Online (Sandbox Code Playgroud)

等等..

gl.ActiveTexture(gl.TEXTURE0)
gl.ActiveTexture(gl.TEXTURE1)
Run Code Online (Sandbox Code Playgroud)

等等..

注意:此代码不是纯 c++ opengl。只是寻找有关如何完成的基本概念。

一个简单的传递示例,为 sampler2d 数组获取统一位置会很棒。有没有人有这方面的经验?

opengl graphics shader

7
推荐指数
1
解决办法
7139
查看次数

python从内存加载zip模块

所以假设我有一个包含模块/类的zip文件.然后我读了这个文件 - 读取二进制文件("rb")将其存储到内存中.我如何将此zip文件存入内存并从中加载模块.我需要为此编写一个导入钩子吗?一个人不能简单地从内存中运行exec二进制zip数据,可以吗?

我知道从磁盘上的普通zip文件加载模块很简单,因为这是由python2.7自动完成的.然而,我; 想知道这是否可以通过记忆.

更新:很多人都提到从磁盘导入zip.问题是我想从内存NOT磁盘导入zip.我显然会逐字节地将它从磁盘读入内存.我想从构成zip文件的内存中获取所有这些字节,并将其用作常规导入.

python

5
推荐指数
1
解决办法
1615
查看次数

Haxe如何加快编译速度(选择最快的目标)

我目前正在使用Haxe,特别是haxeflixel用于开发.真正让我烦恼的一件事是构建/编译时间.我甚至没有编译到c ++目标,但决定编译到neko vm,因为我认为它可能更快.然而; neko debug(或release)的编译时间大约是4或5秒.每次我想看到一个结果时都要等这么久才会让它变得糟透了:).

我甚至尝试使用-v命令进行调试,占用时间最多的部分是:

Running command: BUILD
 - Copying library file:     

C:\HaxeToolkit\haxe\lib\lime/2,9,1/legacy/ndll/Windows/lime-legacy.ndll ->   export/windows/neko/
bin/lime-legacy.ndll

- Running command: haxe export/windows/neko/haxe/release.hxml
Run Code Online (Sandbox Code Playgroud)

从上面的摘录看,似乎一切都表现正常,这让我担心,因为我不希望正常这么慢.

现在4到5秒对一些人来说可能看起来不是很多,但是Golang,javascript,java和其他超级快速编译的语言在那里 - 我被宠坏了.还有另一个我可以编译的目标,我不知道哪个会比neko vm编译更快?有什么办法可以提高编译速度或进一步调试编译速度慢的原因吗?

haxe compilation haxelib haxeflixel

3
推荐指数
1
解决办法
713
查看次数

标签 统计

go ×2

graphics ×2

append ×1

compilation ×1

haxe ×1

haxeflixel ×1

haxelib ×1

image ×1

opengl ×1

performance ×1

png ×1

python ×1

shader ×1

slice ×1