标签: pixmap

使用libgdx和OpenGL ES生成橡皮擦效果

请考虑以下图片作为插图: 在此输入图像描述

最初我用整个屏幕/舞台填充单个图像,直到屏幕变为粉红色.每个粉红色的斑点都是我添加到舞台上的单个Image actor.

现在我想以这样的方式实现touchDown方法:每次用户触摸屏幕时,它都会擦除触摸事件发生的图像的一部分.但是,该触摸事件不应影响粉红色blob actor后面或上方的其他Images/actors/TextureRegions.我如何使用OpenGL ES在libgdx中实现这一目标?请帮助我这方面.

我发现这个链接解释了如何修改TextureRegion,但我不知道如何使用本博客中解释的技术来解决我的问题.链接在这里

android opengl-es pixmap libgdx

11
推荐指数
1
解决办法
2909
查看次数

尝试将像素图保存为png文件时的ValueError

如何将pixmap保存为.png文件?
我这样做:

    image = gtk.Image()
    image.set_from_pixmap(disp.pixmap, disp.mask)
    pixbf=image.get_pixbuf()
    pixbf.save('path.png')
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

    pixbf=image.get_pixbuf()
    ValueError: image should be a GdkPixbuf or empty
Run Code Online (Sandbox Code Playgroud)

python gtk pixmap

10
推荐指数
1
解决办法
523
查看次数

LibGDX无法加载特定图像

我过去已成功加载了所有图像,而且我正在使用OpenGL ES 2.0,因此图像不需要是2的幂(我有几个成功加载但不是).

有问题的代码是这样的:

Line 96: splashSheet = new Texture(Gdx.files.internal("test.png"));
Run Code Online (Sandbox Code Playgroud)

这是我的错误消息:

    Exception in thread "LWJGL Application" com.badlogic.gdx.utils.GdxRuntimeException: com.badlogic.gdx.utils.GdxRuntimeException: Couldn't load file: test.png
    at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:111)
Caused by: com.badlogic.gdx.utils.GdxRuntimeException: Couldn't load file: test.png
    at com.badlogic.gdx.graphics.Pixmap.<init>(Pixmap.java:140)
    at com.badlogic.gdx.graphics.glutils.FileTextureData.prepare(FileTextureData.java:64)
    at com.badlogic.gdx.graphics.Texture.load(Texture.java:175)
    at com.badlogic.gdx.graphics.Texture.create(Texture.java:159)
    at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:133)
    at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:122)
    at com.panini.game.GameScreen.show(GameScreen.java:96)
    at com.badlogic.gdx.Game.setScreen(Game.java:59)
    at com.panini.game.Splash.render(Splash.java:29)
    at com.badlogic.gdx.Game.render(Game.java:46)
    at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:190)
    at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:108)
Caused by: java.io.IOException: couldn't load pixmap
    at com.badlogic.gdx.graphics.g2d.Gdx2DPixmap.<init>(Gdx2DPixmap.java:57)
    at com.badlogic.gdx.graphics.Pixmap.<init>(Pixmap.java:138)
    ... 11 more
Run Code Online (Sandbox Code Playgroud)

这就是使这成为一个有趣问题的原因.我可以加载这个文件,但我无法加载这个.前者基本上只是我想要使用的截图.我提供的第二张图片(不起作用)是原版.它被称为splashSprites.png,但我已经尝试将其重命名为test.png并正确引用它但它仍然不起作用,所以我知道这绝对不是命名问题或任何事情.如果我将这两个文件分别放在名为test1.png和test2.png的assets或bin目录中,那么如果我要求加载test1.png则代码可以正常工作,但如果我要求加载test2.png则不行,所以这不是我我把文件放在错误的地方.这两个似乎是最有可能的候选人,但我已经排除了他们.

我尝试了其他的东西,比如重新导出第一张图片等但它从来没有用过(做了什么工作就是截图,这就是为什么我在这里).我的猜测是它可能与其中一个图像中的alpha有关(因为这真的是唯一不同于两个 - 一个是alpha而另一个没有)但是这不太可能因为我能够加载其他一些有alpha的纹理.我真的很难过.

提前致谢.

file-io android filenotfoundexception pixmap libgdx

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

libgdx-pixmap:我可以以某种方式改变线条的宽度吗?

我想画一条线,然后生成一个纹理(使用 libgdx)。我发现使用像素图从圆形、矩形和线条创建纹理很简单。但是我没有找到如何设置绘制形状的线宽。有没有可能为像素图设置线宽?

这是我到目前为止得到的代码:(我尝试绘制两个实心圆圈并将它们用线连接)

Pixmap pixmap = new Pixmap( 16, 16, Format.RGBA8888 );
pixmap.setColor(Color.BLUE);
pixmap.fillCircle(x1, y1, 10);
pixmap.fillCircle(x2, y2, 10);
pixmap.drawLine(x2, y2, x1, y1); // this line is very thin
Texture pixmaptex = new Texture( pixmap );
pixmap.dispose();
Run Code Online (Sandbox Code Playgroud)

java width pixmap libgdx

6
推荐指数
1
解决办法
2462
查看次数

如何基于.png文件创建像素图?

我有一些.png图标我想用于我想要创建的自定义主题中的窗口按钮对于fluxbox.我的操作系统是Arch Linux.但是,fluxbox适用pixmaps.

问题:是否可以基于.png格式文件创建pixmaps

linux icons png archlinux pixmap

6
推荐指数
1
解决办法
1690
查看次数

libgdx TextureRegion到Pixmap

如何从TextureRegion或Sprite创建Pixmap?我需要这个来改变一些像素的颜色,然后从Pixmap创建新的纹理(在加载屏幕期间).

pixmap libgdx

6
推荐指数
2
解决办法
5892
查看次数

如何提取像素数据使用R的pixmap包?

如何提取像素数据使用R的pixmap包?

所以我使用以下方法读取图像文件:

picture < - read.pnm("picture.pgm")picture Pixmap image类型:pixmapGrey大小:749x745分辨率:1x1包围盒:0 0 745 749

如何将像素数据提取到某个矩阵中?

r pixmap

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

是否可以通过Java API for GLES在Android上使用pixmaps?

我正在尝试在Android上使用OpenGL ES实现离屏渲染.我的最终目标是提高纹理映射的性能,我在普通的java和Bitmap/int [] API中做.我试过pbuffer方法,类似于相关论坛帖子的示例代码.它表现出相当低的性能,glReadPixels一个设备上的呼叫最多需要50毫秒,而另一个设备上的呼叫最多需要15毫秒.

使用Frame Buffers有更多现代方法.代码示例相当复杂,我不希望从帧缓冲区到Android的位图传输速度比使用pbuffers更快.我估计是对的吗?

第三种方法是使用pixmaps.如果我理解正确的文档,他们应该在OpenGL和Dalvik的内存之间使用比普通副本更复杂的内存共享.问题是Android SDK中不存在相关的API.

在Java中没有暴露eglCreateImageKHREGLImageKHR结构.我能找到的所有C++示例都依赖于它们.

有,eglCreatePixmapSurface但我无法弄清楚如何从文档中使用它.可能它在native_pixmap参数中接收某种位图句柄,但我找不到任何方法来创建这样的句柄.搜索"eglCreatePixmapSurface android"只会导致问题报告.

我的主要问题是:我可以在Java上使用pixmaps而无需编写本机代码吗?如果我需要本地化,那么我可以使用工作代码来评估性能,然后深入了解OpenGL?

android opengl-es pixmap

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

如何使用shm pixmap与xcb?

我尝试学习如何在xcb库中使用共享内存pixmaps.您是否有过这方面的经验并希望分享示例代码和/或信息?这将非常有帮助.

谢谢

x11 window shared-memory pixmap xcb

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

Vulkan 和 X11 像素图

我正在使用基于 Vulkan 的合成器编写 X11 窗口管理器。我想知道是否有一种方法可以有效地将窗口像素图加载为纹理。

在 OpenGL 中,可以直接使用 EXT_texture_from_pixmap 扩展将像素图绑定到纹理。据我所知,在 Vulkan 中没有这样的东西。

我一直在研究 Vulkan 和 OpenGL 之间的互操作,即。创建一个 GL 上下文只是为了使用像素图扩展,然后使用 external_objects 和此类扩展来为 Vulkan 带来可用的加载纹理。但是在我的 Intel HD 630 上,所需的 GL_EXT_memory_object 似乎不可用(使用 Mesa 18.3 dev 和最新内核,如果有办法以某种方式启用它,那就太好了)。

目前作为一种解决方法,我使用 CPU 从像素图中获取像素,然后将其暂存到 GPU 内存。显然,这在高分辨率下可能会非常慢,即使将上传限制在损坏的区域也是如此。

有效检索要在基于 Vulkan 的渲染器中使用的像素图内容的最佳方法是什么?

x11 opengl pixmap vulkan

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