问题标签 [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 投票
2 回答
3143 浏览

macos - 从命令行减少 PNG 文件的位深度

我可以从 CLI 执行哪些命令或一系列命令来递归遍历目录树并将该树中所有 PNG 文件的位深度从 24bpp 减少到 16bpp?命令应该保留 alpha 层并且不应该增加 PNG 的文件大小 - 实际上减少会更可取。

我有一个基于 OSX 的系统可供我使用,并且熟悉该find命令,因此我非常渴望找到合适的 PNG 实用程序命令。

0 投票
2 回答
22127 浏览

c# - 如何检查位图的颜色深度?

我正在开发一个打印图像文件文件夹的应用程序,包括 JPEG 和 TIFF。TIFF 图像通常是黑白 (1bpp)。

加载图像后,我想确定图像是彩色还是黑白灰度,以便我可以将图像发送到正确的打印机(彩色打印机或黑白打印机)。

我正在使用Bitmap构造函数image = new Bitmap(filename);来加载图像。

编辑:检查像素深度的答案非常适合黑白。关于在不遍历每个像素的情况下检查图像是否为灰度的任何想法?

0 投票
2 回答
5237 浏览

php - PHP如何获取给定PNG图像文件的位深度?

在 PHP 代码中,给定一个 .png 图像路径,我需要检测该图像的位深度。我怎样才能做到这一点?

我尝试使用 getImageSize() 并阅读bits以下示例代码,但对于 24 位/32 位图像,它总是返回“8”。

请帮忙。

0 投票
2 回答
1060 浏览

android - 位图和屏幕上的位深度问题(白色不是白色)

我有一个透明的 PNG 图像,代表一个带有蓝色光芒的蓝牙图标,从 Photoshop 导出:

在此处输入图像描述

在 HTC Desire 上,创建了一个简单的图像视图,并将 PNG 用作位图。如果图像视图周围的背景是白色的,则细微差别之间存在差异。如果背景为黑色,则隐藏差异。 在此处输入图像描述

如果我使用 ADB 进行屏幕截图,则问题不可见: 在此处输入图像描述

可能的原因: 屏幕使用的位深度率高于位图所使用的位深度率。例如。RGB24 与 RGB16。通过这样做,与位图编码相比,屏幕具有更多的白色细微差别。显示时,位图的像素近似于新的位深度要求,但由于使用了近似值而无法正确匹配背景细微差别。例如。RGB16->RGB24 意味着 C24 = 255*C16/31 。

如果我使用屏幕捕捉软件,位深度可能会缩小到更窄的位深度值 (RGB16),因此所有细微差别都合并在一起,并近似为更简单的 16 位颜色。这就是为什么我用照相机来说明这个问题。

问题是如何解决这个问题?

我已经尝试使用以下参数加载位图:resample.inPreferredConfig = Config.ARGB_8888; 但是没用。

我只需要显示一个透明图像,例如带有 GFX 效果的图标:阴影、发光等。我也很乐意使用灰度蒙版(黑色=>白色蒙版来指示像素透明度,但没有找到一种方法)。

谢谢你的时间!

0 投票
1 回答
3454 浏览

compression - 如何使用 sox 压缩 mp3?

我想用 sox 减小一些 mp3 音频的文件大小。我想我可以将立体声减少到只有 1 个通道(即单声道),降低采样率并降低位深度。我发现似乎 sox 什么都做不了。这是真的还是我做对了?

0 投票
2 回答
1154 浏览

c# - 在单点触控中将 24 位图像转换为 8 位?

我们有一个图像处理 Windows 应用程序,我们使用主要工具将图像从 24/48 位图像转换为 8 位图像。

作为一个实验,我正在使用 MonoTouch 和 C# 将应用程序移植到 iPad,现在 LeadTools 组件与 Monotouch 不兼容。有什么我可以使用的替代品吗?如果不是,我如何将 24/48 位图像转换为 8 位?

0 投票
4 回答
8422 浏览

android - 尽管在任何地方都使用 RGBA_8888,但带有渐变的色带和伪影

我知道色带是一个老问题,之前已经讨论过很多次,提供了各种解决方案(基本上归结为始终使用 32 位,或使用抖动)。事实上,不久前我问过并随后回答了我自己关于这个的 SO 问题。那时,我认为我在该问题的答案中提出的解决方案(适用setFormat(PixelFormat.RGBA_8888)于a 的情况下Window也适用于Holdera SurfaceView)已经解决了我的应用程序中的问题。至少该解决方案使渐变在我当时开发的设备(很可能是 Android 2.2)上看起来非常漂亮。

我现在正在使用 HTC One X (Android 4.0) 和 Asus Nexus 7 (Android 4.1) 进行开发。我试图做的是对 a 的整个区域应用灰色渐变SurfaceView。即使我应该确保包含WindowHolder配置为 32 位颜色,但我得到了可怕的条带伪影。事实上,在 Nexus 7 上,我什至可以看到工件在移动。这不仅发生在SurfaceView当然连续绘制的情况下,而且发生在View我为测试目的而添加的法线中,以绘制完全相同的渐变,这本来会绘制一次。这些伪影存在并且似乎四处移动的方式当然看起来非常糟糕,实际上就像观看信号不佳的模拟电视一样。这俩ViewSurfaceView展示完全相同的文物,它们一起移动。

我的意图是始终使用 32 位,而不是使用抖动。我的印象是Window早在 Android 4.0 之前默认是 32 位的。通过应用RGBA_8888SurfaceView我本来希望一切都是 32 位的,因此避免了任何伪影。

我确实注意到关于 SO 的其他一些问题,人们观察到RGBA_8888在 4.0 / 4.1 平台上似乎不再有效。

这是我的 Nexus 7 的屏幕截图,View顶部为法线,SurfaceView下方为法线,两者都将相同的渐变应用于Canvas. 当然,它不会像查看显示器时那样显示伪影,因此显示此屏幕抓取可能毫无意义。我想强调的是,在 Nexus 的屏幕上,条带确实看起来很糟糕。编辑:事实上,屏幕截图根本没有显示工件。我在 Nexus 7 上看到的伪影不是统一的条带;它本质上看起来是随机的。

在此处输入图像描述

Activity用于创建上述测试的测试:

我从 Google Play 安装了一个名为 Display Tester 的应用程序。此应用程序可用于在屏幕上创建测试梯度。虽然它的渐变看起来并不完美,但它们似乎比我能够实现的要好一些,这让我想知道是否可以采取进一步措施来防止条带化。

我注意到的另一件事是 Display Tester 应用程序报告我的 Nexus 屏幕是 32 位的。

有关信息,我明确启用硬件加速。我的 SDK 级别是:

我注意到的另一件事是,Activity我理解为 Holo 的一个功能的默认渐变背景也是非常带状的。这也根本没有显示在屏幕截图中。而且,我还注意到我的 Nexus 7 上的背景条带短暂移动,这与我的两个Views. 如果我使用默认的 'empty' 创建一个全新的 Android 项目,ActivityActivity的 Nexus 和 HTC One X 上都会显示令人讨厌的带状渐变背景。这正常吗?Activity我知道如果启用硬件加速,这个黑色/紫色渐变默认背景是应该有的。好吧,不管是否启用了硬件加速,我都看到了同样令人讨厌的带状Activity背景渐变。这甚至发生在我的空测试项目中,其目标 SDK 为 15。为了澄清,我启用或禁用硬件加速的方式是显式使用android:hardwareAccelerated="true"and android:hardwareAccelerated="false"

我不确定我对 Holo 黑色/紫色Activity渐变背景的观察是否与我的主要问题有关,但它似乎确实相关。奇怪的是它看起来质量如此差(即带状)并且无论是否打开硬件加速看起来都一样。所以,第二个问题是:当你有一个Activity默认的 Holo 渐变背景,并且对于硬件加速被明确启用然后禁用的每种情况,这个渐变背景 (a) 是否存在并且 (b) 看起来非常平滑?我会在一个单独的问题中问这个问题,但同样,它似乎是相关的。

所以,总而言之:SurfaceView我遇到的基本问题是,在我的 Nexus 7 上似乎根本无法将渐变背景应用于 a 。这不仅仅是条带问题(如果它只是那); 实际上,每次抽签时,条带本质上都是随机的。这意味着SurfaceView不断重绘的 a 最终会有一个移动的、模糊的背景。

0 投票
1 回答
16599 浏览

audio - .wav 文件格式的频道是什么?播放 wav 文件时是否所有频道同时播放?

我通过谷歌搜索阅读了 about.wav 文件格式,我所能想到的是帧是由样本(具有一些定义的位深度)组成的,而 wav 立体声文件有多个称为通道的东西....混淆是通道是否是由框架组成的吗?当我播放一些音频文件时,所有频道都会一起播放吗?如果一个通道由帧组成,所有通道的长度是否相等(按位)?如果有人可以请回答,我在以波形播放wav文件时必须分别显示每个通道

0 投票
0 回答
614 浏览

java - glEnable(GL_DEPTH_TEST) - 不渲染任何东西

我正在做一个项目来学习渲染 3d 形状。为了获得正确的深度,我正在尝试使用 glEnable(GL_DEPTH_TEST)。正如预期的那样,它不会渲染任何东西,所以我添加了 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT),但我仍然没有得到任何渲染。这是我的代码的简化版本。

}

这是用于创建和渲染立方体的类

这是我用来查看事物的相机

0 投票
2 回答
447 浏览

c# - 使用 Mono.Cecil 的 .NET 程序集的目标架构

我是否可以使用 Mono.Cecil 找到 .NET 程序集是专门为 32 位还是 64 位构建的?或任何其他无需先加载程序集的查找方式。