问题标签 [bit-depth]

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 投票
0 回答
3629 浏览

c# - 获取位图的颜色深度

我想用 c# 获取图像文件的位深度(和颜色空间)。

这是我的测试文件。使用 Windows 资源管理器的属性,我验证了它们的位深度(8、16、24、48、96)。

BitmapImage.Format.BitsPerPixel

对于 8 位灰度返回8 ,但对于所有其他类型返回 32。

图像.像素格式

PixelFormat适用于除 32 位浮点图像之外的所有图像,它会抛出System.OutOfMemoryException.

Image.PropertyItems

这个答案建议使用 PropertyItems 属性。

与上面的示例类似,但会引发 32 位图像异常。


这个答案建议使用 Windows API 代码包。但我宁愿使用原生 c# 功能。


是否有内置方法来确定图像的位深度,适用于 1、8、16、24、48、96 位?

0 投票
1 回答
152 浏览

ios - OpenGLES 2.0 wrong depth buffer bits

I downloaded this Apple sample code GLEssentials sample code. I want to perform some experiments with depth buffer, so at first I decided to check BUFFER_BITS.

I added next code to OpenGLRenderer.m in -initWithDefaultFBO method:

I had next output:

but in ES2Renderer.m I see next line:

Why its happened? Is it bug?

PS: I tested only in iOS simulator, because I haven't ios device.

0 投票
1 回答
482 浏览

c# - ASIO 设备/驱动程序属性

在控制台应用程序中使用 NAudio & C#;以下代码列出了我的 PC 上安装的 ASIO 驱动程序:

代码片段:

CMD> 结果:

我想确定每个驱动程序的采样率和位深度支持,尽管位深度支持是此时最重要的方面。

此外,如果有任何方法可以知道当前连接的设备/驱动程序正在运行/处于活动状态,那将是惊人的。

编辑:

我应该指定我正在寻找连接/活动设备的音频流的传入位深度。

0 投票
0 回答
151 浏览

python - 使用 Python Imaging Library (PIL) 打开不同比特大小的图像

我正在使用 PIL 打开和操作大量图像。

对于位深度为 24 的图像,此方法有效。对于位深度为 36 或 48 的图像,此操作失败。

如何打开位深不是 24 的图像?

0 投票
0 回答
559 浏览

java - Java从jpeg-jfif图片中提取位深度

我想从 jpeg 文件中提取位深度。我使用元数据提取器,但它将所有 jpeg 文件的所有位深度都返回为 8 位,但所有图片都有 24 位颜色深度。

样本结果:

是否还有其他用于提取位深度的库和示例?

0 投票
2 回答
10474 浏览

python - 确定 wav 文件的位深度

我正在寻找一种快速、最好是标准库机制来确定 wav 文件的位深度,例如“16 位”或“24 位”。

我正在使用对 Sox 的子进程调用来获取过多的音频元数据,但是子进程调用非常慢,我目前只能从 Sox 可靠地获取的唯一信息是位深度。

内置的 wave 模块没有“getbitdepth()”之类的功能,并且也不兼容 24 位 wav 文件 - 我可以使用“尝试除外”来使用 wave 模块访问文件元数据(如果有效,请手动记录它是 16 位的)然后除了调用 sox 之外(其中 sox 将执行分析以准确记录其位深度)。我担心的是,这种方法感觉像是猜测工作。如果读取一个 8 位文件怎么办?如果不是,我会手动分配 16 位。

SciPy.io.wavefile 也与 24 位音频不兼容,因此会产生类似的问题。

教程非常有趣,甚至包括一些非常低级(至少 Python 是低级)的脚本示例,用于从 wav 文件头中提取信息 - 不幸的是,这些脚本不适用于 16 位音频。

有什么方法可以简单地(并且不调用 sox)确定我正在检查的 wav 文件的位深度是多少?

我正在使用的波头解析器脚本如下:

0 投票
0 回答
370 浏览

opencv - 有什么方法可以根据深度数据计算体积吗?使用基于深度的相机

目前我通过添加所有深度数据来获得帧的总强度。所以我可以将强度视为体积吗?

还是有其他方法可以获取音量?

0 投票
0 回答
63 浏览

matlab - 在 Matlab 中更改自定义文件的位深度

我试图找出一种方法来减少使用 matlab 的自定义文件类型的深度(其原始位深度为 16 位)。这个想法是以 2 步增量将位深度从 16 位降低到 8 位,以查看它如何影响数据。我知道 matlab 有用于更改图像文件位深度的工具,但因为这是一种自定义文件类型,我不确定它们是否能在这种情况下工作。(因为压缩脚本的其余部分是用 matlab 编写的,所以找到相同语言的解决方案将是理想的)。任何建议将不胜感激!

0 投票
0 回答
76 浏览

ios - 如何在 iOS 中将 alpha 图像转换为 8 位深度

当我从图库或相机中选择图像时,我想将图像转换为 8 位。这是我必须尝试的代码。下面的代码在没有 alpha 通道的情况下工作。如果图像有 alpha,则它不起作用。当我从相机中挑选图像时,会出现一些 alpha 值,因此会引发异常。

我试过这段代码。此代码仅在图像 CGImageAlphaInfo 属性等于 kCGImageAlphaNoneSkipLast 时将图像转换为 8 位。

0 投票
2 回答
2596 浏览

c# - 如何在 Magick.NET 中设置位深度 Read

读取二进制文件时,如何为 MagickImage.Read() 函数指定位深度?

我有一个由 8 位灰度值表示的 1024x1024 图像(总文件长度 = 1024x1024 = 1048576 字节)。使用 ImageMagick v.7.0.8-7 Q16 x64,我可以使用转换文件

当我尝试使用 Magick.NET Q16-AnyCPU v7.5.0.1 转换文件时,

我得到错误

消息:ImageMagick.MagickCorruptImageErrorException:意外的文件结束'':没有这样的文件或目录@error/gray.c/ReadGRAYImage/241

表示程序已读取文件末尾。我已经确认 Magick.NET 正在恢复到 16 位深度,而不是我想要的 8 位深度。我可以使用而不是 1024 来读取文件settings.Height = 512,这给了我灰度图像的压缩版本。

我从Magick.NET 中的内存消耗中了解到,Magick.NET Q16 以 16 位精度将像素存储在内存中;我对此很好,但似乎不应该排除 8 位读取功能。

如何强制 Magick.NET Q16 读取 8 位深度的像素?