问题标签 [pixelformat]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2378 浏览

c++ - 在 SDL 中设置像素格式并从表面创建纹理

我目前正在尝试使用像素操作进行一些操作,并且我想设置 SDL_Surface 的像素格式。这里的问题是我正在使用 SDL_image.h 加载图像。所以我必须从这样的表面创建纹理:

所以我不能使用以下我想要的功能,或者我可以吗?:

问题是,我想将 SDL_PixelFormat 设置为能够处理像素。我怎样才能做到这一点并基于表面创建纹理?

0 投票
3 回答
453 浏览

c++ - 如何使用模式从内存中复制字节(YUYV 打包到 YUV420 平面)

让我们从这个开始:

我有一个 16 字节的内存块,我只需要将偶数字节复制到 8 字节的内存块。

我目前的算法正在做这样的事情:

这只是一个例子,因为我想知道当我需要获取每 3 个字节或每 4 个字节时是否有更好的方法来执行此操作,而不仅仅是字节。

我知道使用循环我可以实现这一点,但我需要优化它......我不完全知道如何使用 SSE,所以我不知道在这种情况下是否可以使用,但类似 ​​memcpy 魔法的东西会很棒。

我还考虑过使用宏来摆脱循环,因为源和目标的大小都是恒定的,但这看起来没什么大不了的。

如果我说这是提取 YUYV 像素格式的 YCbCr 字节,也许你可以开箱即用。另外我需要强调的是,我这样做是为了摆脱 libswscale。

0 投票
1 回答
2737 浏览

c++ - Open GL - 为什么 ABGR 中的像素值以及如何在 RGBA 中使用它们

我有一些加载纹理的代码,我使用 DevIL 加载图像,然后 OpenGL 从像素创建纹理。这段代码工作正常,纹理正确显示,这一切都很好。

除此之外,我还可以在程序中创建一个数组来创建纹理或直接更改纹理的像素。我的问题在这里:在处理像素时,它们的格式似乎是 ABGR 而不是我希望的 RGBA。

我偶然发现了这个 SO 问题,它指的是 glTexImage2D 函数中传递的格式:

(...) 如果您有 GL_RGBA 和 GL_UNSIGNED_INT_8_8_8_8,这意味着像素存储在 32 位整数中,并且颜色在这样的整数中按照逻辑顺序 RGBA,例如红色在高位字节中,而alpha 在低位字节中。但是如果机器是 little-endian(如 Intel CPU),那么内存中的实际顺序是 ABGR。而 GL_RGBA 和 GL_UNSIGNED_BYTE 将以 RGBA 顺序存储字节,无论计算机是小端还是大端。(...)

事实上,我有一个英特尔 CPU。图像以现在的方式加载得很好,我实际上使用 GL_RGBA 模式和 GL_UNSIGNED_BYTE 类型。

这个函数用在我的两种加载纹理的方法中,一种是从文件加载图像的方法,另一种是从数组创建纹理的方法。

假设我想创建一个像素数组并创建一个纹理,

通过用这个值填充像素,我希望看到稍微深红色的颜色。

但相反,我得到一个透明的红色,

我没有使用原始无符号整数,而是创建了一个结构来帮助我处理单个通道:

我可以很容易地用 Color4C 数组替换一个无符号整数数组,结果是一样的。如果我反转通道的顺序(首先是红色,最后是 alpha),那么我可以轻松地传递 0xRRGGBBAA 并使其工作。

简单的解决方案是以 ABGR 格式简单地处理这些值。但我也发现使用 RGBA 值更容易。如果我想使用硬编码的颜色值,我更愿意将它们写成 0xRRGGBBAA 而不是 0xAABBGGRR。

但是假设我开始使用 ABGR 格式。如果我要在另一台机器上运行我的代码,我会在直接更改像素/通道的地方突然看到奇怪的颜色吗?有更好的解决方案吗?

0 投票
1 回答
880 浏览

c - Linux帧缓冲区像素位域通用实现

我正在编写一个小型库来与 Linux 的帧缓冲区抽象接口。我所有的显卡都使用相同的像素格式(每个通道一个八位字节,四个通道,BGRA 排序),到目前为止,该库仅采用这种格式。但是,如果我希望库在任何 Linux 帧缓冲区上工作,帧缓冲区 API 提供了我必须使用的像素格式数据。您不需要知道帧缓冲区是如何工作来回答这个问题的(我希望如此),只是一些我不精通的小技巧。这是我的标题中提供的像素格式信息:

我需要将使用上述信息格式化的像素从四个字符(R、G、B 和 A)写入一个字符数组。我所做的错误尝试如下所示:

xy2off将坐标转换为索引。fb是指向帧缓冲区(内存映射)的指针。

谁能指出我转换和分配这些像素的正确方向?

0 投票
1 回答
7368 浏览

android - 什么是 PixelFormat.RGBX_888

正如标题所说,有人知道什么是 RGBX_8888 像素格式吗?和 RGBA_8888 有什么区别?RGBA_8888 是否提供 Alpha 通道但 RGBX_8888 不提供?

不幸的是,android 文档没有提供太多关于此的信息。

谢谢。

0 投票
1 回答
750 浏览

java - LWJGL 和 Slick2D 64 位

我正在尝试使用 64 位 JDK 8u60 在 LWJGL 和 Slick2D 中编译程序。但是,当我不把本地人放进去时,它说它缺少 lwjgl64。导入 lwjgl64.dll 本机后,会出现运行时错误,指出我的像素格式未加速。我读过其他资料,有人说我需要安装更新的驱动程序。但是,我已经检查了新的更新并且没有任何更新。使用 32 位 JDK 8u60 时不会出现运行时错误,也无需指定 native。有人可以帮我解决这个问题吗?我宁愿不必安装 JDK 8u60 32 位安装而不是 64 位。

这是我的代码

这是错误

0 投票
1 回答
73 浏览

c# - 输入图像在加载过程中丢失了它的 PixelFormat。C#

我想将我的资源中的图像加载到位图,并保存其像素格式。输入图像是具有 8 BitsPerPixel 图像深度的 .bmp 文件。这是代码:

当我调试程序并检查 sourceImage 的属性时,它的 PixelFormat 是PixelFormat.Format8bppIndexed. 但是在这个变量赋值之后 inputImage 的 PixelFormat 是Format32bppArgb.

你知道问题出在哪里吗?

0 投票
1 回答
330 浏览

swift - 在 Swift 中为 int32 pixelFormat 输入什么?

我想使用函数 CGDisplayStreamCreateWithDispatchQueue。

文档告诉我为“pixelFormat”使用以下可能的值:(参数需要是 Int32)

如果我输入例如“BGRA”,那么 Xcode 会告诉我这是一个无效参数。该怎么办?

0 投票
1 回答
197 浏览

c# - 序列化像素格式

我想序列化System.Windows.Media.PixelFormat对象,然后通过反序列化重新创建它。我在做什么:

接着

序列化不会给出任何错误。当我尝试反序列化此对象时,它也没有给出任何错误,但返回的对象不好,例如在BitsPerPixel它具有的字段中BitsPerPixel = 'pixelFormat.BitsPerPixel' threw an exception of type 'System.NotSupportedException'

@edit 我有一个解决这个问题的方法。我们必须使用 PixelFormatConverter 将 PixelFormat 对象转换为字符串,然后将字符串序列化。反序列化时,我们获取字符串并使用 PixelFormatConverter 将其转换回 PixelFormat。

0 投票
1 回答
2528 浏览

javafx - 从 int 数组创建 Javafx 图像

我正在拼命尝试从具有整数值的像素数组创建图像。不管是使用WritableImage还是Canvas,总是说PixelFormat是BYTE_RGB或者BYTE_BGRA_PRE,所以不得不用字节数组。

有什么方法可以将 PixelFormat 更改为,<IntBuffer>或者我是否忽略了另一个能够拥有的组件PixelFormat<IntBuffer>