标签: bit-depth

尽管在任何地方都使用RGBA_8888,但颜色条带和渐变的人工制品

我知道色带是一个问题的老栗子,之前已经讨论了很多次提供了各种解决方案(基本上归结为使用32位,或使用抖动).事实上不久前我问过并随后回答了我自己的问题.当时,我还以为我把在回答这个问题的解决方案(这是应用setFormat(PixelFormat.RGBA_8888)Window,也给Holder在的情况下SurfaceView),在我的很好的应用已经解决了这个问题.至少解决方案使得渐变在我当时开发的设备上看起来非常好(很可能是Android 2.2).

我现在正在使用HTC One X(Android 4.0)和华硕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_88884.0/4.1平台上似乎不再有效.

这是我的Nexus 7的截图,View顶部和SurfaceView下面都有法线,两者都使用相同的渐变Canvas.当然,它不会像在显示屏上那样显示工件,因此显示此屏幕抓取可能毫无意义.我想强调的是,在Nexus的屏幕上,条带确实看起来很糟糕.编辑:其实,真正的截图没有显示的文物在所有.我在Nexus 7上看到的文物并不是统一的条带; 它看起来很随意.

在此输入图像描述

Activity用于创建以上内容的测试:

import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.LinearGradient;
import android.graphics.Paint;
import android.graphics.PixelFormat;
import android.graphics.Shader;
import android.os.Bundle; …
Run Code Online (Sandbox Code Playgroud)

android colors surfaceview bit-depth

26
推荐指数
1
解决办法
6809
查看次数

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

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

audio channel wav bit-depth

13
推荐指数
1
解决办法
1万
查看次数

LG G手表不显示具有全色深度的32位图像或渐变

在我运行Android 5.0.1的LG G Watch上,我一直在努力让渐变显得平滑.

在你标记为重复之前,我已经尝试了几个帖子的每个答案(比如为什么android在显示png文件时会丢失图像质量?,是否可以抖动渐变可绘制?,android:dither ="true"不会抖动,有什么不对?,彩色条带Android解决方案,色带,并与梯度文物尽管使用RGBA_8888无处不在,颜色只能在Android 4.0以上版本的条带,在Android的可怕的背景图像质量),但似乎都不适用.


以下是我创建渐变的步骤

1)从最新的Android SDK加载示例'Wearable:Watch View Stub'项目

2)将rect_background.xmldrawable 更改为:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <corners android:radius="@dimen/rect_corner_radius"/>
    <gradient android:startColor="@color/light_grey"
        android:endColor="@color/white"
        android:angle="90"/>
</shape>
Run Code Online (Sandbox Code Playgroud)

3)这是仿真器上的样子

在此输入图像描述

4)这是我从设备进行屏幕捕获时的样子: 在此输入图像描述

5)但是当我亲眼看到它时,有一种可怕的条纹:(在现实生活中看起来更糟糕;图像不公正) 在此输入图像描述 在此输入图像描述

以下是亲眼看到的模拟图像(128种颜色): 在此输入图像描述

我也尝试过:

  • 使用png位图(24位)
  • 使用带有1个透明像素(32位)的png位图
  • 使用带有所有半透明像素(32位)的png位图
  • 使用比特深度减少的png位图(256色)
  • 使用100质量的jpeg.

  • 在创建布局之前和之后,在Activity中手动将PixelFormat设置为RGBA_8888

  • 打开活动中的抖动
  • 使用自定义位图加载器从代码加载位图(设置像素格式,抖动等,请参阅Android中的可怕背景图像质量)
  • 关闭ImageView的任何缩放
  • 将图像放在drawable,drawable-hdpi和raw文件夹中
  • 解压缩APK并验证图像是否已解压缩.

所有这些都以同样的方式出现.


如何让它在设备上正确显示?

还有其他人看到这个问题吗?根据这个网站,LG G Watch的颜色深度为24位,每通道应为8位.设备上的正常图像显示正确 - 没有明显的条带.

android bit-depth wear-os

8
推荐指数
1
解决办法
686
查看次数

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

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

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

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

编辑:检查像素深度的答案非常适合B&W.有关检查图像是否为灰度而不迭代每个像素的任何想法?

c# image bitmap color-depth bit-depth

8
推荐指数
2
解决办法
2万
查看次数

如何使用sox来压缩mp3?

我想用sox减少一些mp3音频的文件大小.我想我可以将立体声降低到只有1个声道(即单声道),降低采样率并减少比特深度.我觉得似乎sox不能做到这一点.这是真的还是我做得对吗?

$ sox -r 8000 -c 1 2008-12-28-2.MP3 foo.mp3
sox WARN formats: can't set sample rate 8000; using 44100
sox WARN formats: can't set 1 channels; using 2
Run Code Online (Sandbox Code Playgroud)

compression mp3 sox sample-rate bit-depth

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

改变使用Matplotlib生成的数字的位深度

我正在使用matplotlib通过savefig生成一些数字.这些数字是黑白的,需要以TIFF格式以非常高的分辨率(1000 dpi)保存.因此,以较小的位深度保存它们以便使用较少的存储器将是有益的.

为此,我的问题是:在使用matplotlib保存数字时如何指定位深度?

谢谢!

python matplotlib bit-depth

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

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

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

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

我尝试使用getImageSize()并读取bits如下示例代码,但对于24位/ 32位图像,它总是返回'8'.

请帮忙.

class Utils {
    //Ham de lay bits cua image
    public static function getBits($image) {
        $info = getImageSize($image);
        return $info['bits'];
    }
}
Run Code Online (Sandbox Code Playgroud)

php png bit-depth

5
推荐指数
2
解决办法
4317
查看次数

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

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

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

macos command-line png bpp bit-depth

5
推荐指数
2
解决办法
3053
查看次数

使用 ffmpeg 或 ffprobe 获取视频的像素位深度

是否可以使用 ffprobe 或 ffmpeg 来计算视频文件的位深度?我特别想知道我的视频的每通道 (bpc) 有多少位。8 是典型的,但一些更高级的编解码器可以使用更高的位深度,并且我不确定如何使用 ffprobe 获取此信息,或者是否可能。具体来说,我有使用 AVC-Intra Class 100 1080p 59.94 fps 编解码器编码的视频,但我不确定 ffprobe 是否可以从此类文件中获取位深度。如果是这样,你会怎么做?

video ffmpeg codec bit-depth ffprobe

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

确定wav文件的位深度

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

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

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

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

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

有什么方法可以简单地(无需调用sox)确定我要检查的wav文件的位深度?

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

import struct
import os

def print_wave_header(f):
    '''
    Function takes an audio file path as a parameter and 
    returns a dictionary of metadata parsed from the header
    '''
    r = {} #the results of the header parse
    r['path'] = f
    fin = open(f,"rb") # Read wav file, "r flag" - read, "b flag" - binary 
    ChunkID=fin.read(4) # First four bytes are ChunkID which must be "RIFF" in ASCII …
Run Code Online (Sandbox Code Playgroud)

python audio sox bit-depth wave

4
推荐指数
2
解决办法
3135
查看次数

如何将 int32 numpy 数组转换为 int16 numpy 数组?

我想将一个 numpy 数组从int32类型转换为int16类型。

我有一个int32名为的数组array_int32,我正在将其转换为int16.

import numpy as np
array_int32 = np.array([31784960, 69074944, 165871616])`
array_int16 = array_int32.astype(np.int16)
Run Code Online (Sandbox Code Playgroud)

转换后,将array_int16变成零数组。我不知道我在做什么错误。有人可以帮助我吗?

numpy bit-depth python-3.x

3
推荐指数
2
解决办法
8533
查看次数

特征位如何在 vawpal wabbit 中工作

我对 vavepal wabbit 比较陌生,想了解 -b 参数(特征表中的特征位)。

我的训练数据是这样的。总共有大约100万个单词。

1 | a = "word" b ="word131232" c="word1233" d = "word123124" e = "word23145"
Run Code Online (Sandbox Code Playgroud)

但是,每行只有 5 个特征。我应该使用多少位?我尝试运行它,似乎随着示例数量的增加,功能集的数量似乎也在增加。我似乎不明白为什么会这样。

parameters hash bit-depth vowpalwabbit

2
推荐指数
1
解决办法
560
查看次数