问题标签 [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.
imagemagick - MagicNET 将 PDF 转换为黑白 (1bit) PNG
我们的一位客户需要将 PDF 运输标签转换为 PNG 图像。PDF 图像需要为 300 DPI,位深为 1(纯黑白,无灰度)。
我已经完成了这项工作,但有些问题我找不到任何解决方案。
我的代码
结果
当使用以下设置(BitDepth(1) + 300 DPI)运行此代码时,PNG 图像为 1169x2303 和(4Bit 深度)。
当使用以下设置运行此代码时(已删除 BitDepth(1) + 300 DPI),PNG 图像为 1169x2303 和(32 位深度)。
这给了我 2 个主要问题,当 BitDepth 设置为 1 时,为什么 PNG 图像仍然是 4 位?其次,该 4 位图像的质量非常糟糕,条码扫描仪无法读取。感觉就像图像在写作过程中以某种方式调整了大小。我需要具有 32 位图像的“清晰度”,但需要 1 位。
有人可以在这里指出我正确的方向吗,感觉我缺乏图像转换的专业知识。
谢谢!
PS:我正在使用 Magick.NET-Q8-AnyCPU (7.23.3)
测试建议1
结果图像以黑线作为所有内容的边框,没有任何文本填充黑色,但图像现在按预期为 1 位。
python - 对于非 16 位文件,pydub 音频播放*非常*响亮
我有一些我在 pydub 中使用的音频样本(来自SampleSwap)。它们中的大多数具有 16 个样本深度/位,而其他是 24 或 32。看起来像这样:
我遇到的问题是当我试图让他们回放时:
虽然 16 位文件正常播放,但 24 位文件的声音都震耳欲聋,严重到可能损坏扬声器的地步。在我的电脑设置为最小音量的情况下,24 位播放的音量与普通音乐以最大音量播放的音量差不多。它是超级扭曲、锐利和剪裁的。
我很确定我已经将其隔离为位深度问题。在其他软件中播放时,声音都正常播放。我可以使用 sox或 using将问题声音转换为 16 位pydub.AudioSegment.set_sample_width(2)
,然后问题就消失了。我也直接通过 simpleaudio 进行播放(从 pydub 复制代码,here)并得到同样的问题。
主要问题是我正在编写一些用于处理我想分享的音频的代码,但我不希望用户因听到这些破坏的声音之一而遭受身体或精神伤害。我唯一的解决方法是立即将任何使用加载的声音/锁定音频播放的位深度转换为仅 16 位文件;这适用于我正在测试的文件,但是 a)我不知道它是否适用于所有声音/计算机,并且 b)我认为这在 pydub 中不应该是一个问题。我还想在播放之前以某种方式检查声音的音量(使用例如a.dBFS
或a.max
),但我没有发现任何似乎可靠的东西(指标与音量并没有真正相关,或者值似乎是更多的额外位提供的动态范围的指示)。
所以我的问题是:
- 为什么在播放非 16 位文件时,我在 pydub 中播放的声音非常响亮、失真?
- 我能做些什么来防止它?
- 我在这里遗漏了一些关于音频播放的明显内容吗?
我知道这(希望)不是那么可重复的;如果有帮助,我可以尝试记录并发布。我还可以指出我在 SampleSwap 上使用的声音,但问题似乎是由任何不是 16 位的文件引起的(即我可以将声音转换为 32 位并生成问题)。
这是一些版本信息:
- ffmpeg 4.4
- PyAudio 0.2.11
- pydub 0.25.1
- 简单音频 1.0.4
问题出在 2019 款 MacBook Pro Catalina 10.15.7 上。我还测试了我的 Windows 10 桌面(与上述类似的版本),但不是上面的问题,我只是沉默。
python - 使用 struct.unpack_from 解析时,特定图像返回奇怪的值
我正在使用以下代码来查找给定图像的位深度:
当我输入我的其他测试图像时,它应该可以正常工作,但是当我专门从这个页面输入小样本图像时,它会输出 196640。我在 Hex Editor Neo 中查看了该文件,所选字节的值为 32 . 有谁知道为什么程序不返回这个值?
python - 使用 wavfile.read 从 wav 文件中提取位深度
我试图从 wav 文件中读取位深度wavfile.read
,但是,我没有成功。
这是我到目前为止的代码:
如何返回 wav 文件的位深度?
api - 音频:使用 ffmpeg api 检索位深度
我需要任意音频格式(mp3、wav、acc、flac、opus、ogg 等)的位深度
为此我尝试了
AVStream.codecpar.bits_per_raw_sample;
并且
AVStream.codec.bits_per_raw_sample;
但除了 flac 都返回 0。
ffprobe 也不输出位深度,只输出样本格式(s16、fltp 等)。
如何获得位深度?
还是我必须从样本格式中“导出”它?
image-processing - 图像每个像素可以有不同的位和不同的位深度吗
我有一个 24 位的部门 png 图像。
图片详情
我使用来自https://www.researchgate.net/post/How-can-one-relate-compression-ratio-CR-with-bits-的 Pedro Miguel Moreira 所说的公式bpp = Scomp / NPixels计算了它的每秒位数每像素 bpp
我的 bpp 为 18 或 17.98996914
我的主要问题是,我可以有不同的每像素位和不同的位深度,还是位深度 = 每像素位。