- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
首先,如果这是重复的,我深表歉意;但我的 Google-fu 今天似乎让我失望了。
我正在为 Photoshop 编写图像格式模块,此格式的保存选项之一包括一个 4 位 alpha channel 。当然,我必须转换的数据是 8 位/1 字节 alpha - 所以我基本上需要每两个字节的 alpha,并将其合并为一个。
我的尝试(下),我相信还有很大的改进空间:
for(int x=0,w=0;x < alphaData.size();x+=2,w++)
{
short ashort=(alphaData[x] << 8)+alphaData[x+1];
alphaFinal[w]=(unsigned char)ashort;
}
alphaData 和 alphaFinal 是分别包含 8 位 alpha 数据和 4 位 alpha 数据的 vector 。我意识到将两个字节减少为一个字节的值必然会导致“分辨率”丢失,但我不禁认为有更好的方法可以做到这一点。
有关额外信息,这里是执行相反操作的循环(将 4 位 alpha 从格式转换为 8 位 Photoshop)
alphaData 的用途与上述相同,而 imgData 是一个保存原始图像数据的无符号字符 vector 。 (在此特定格式的变体中,alpha 数据附加在图像的实际 rgb 数据之后)
for(int b=alphaOffset,x2=0;b < (alphaOffset+dataLength); b++,x2+=2)
{
unsigned char lo = (imgData[b] & 15);
unsigned char hi = ((imgData[b] >> 4) & 15);
alphaData[x2]=lo*17;
alphaData[x2+1]=hi*17;
}
最佳答案
你确定是
alphaData[x2]=lo*17;
alphaData[x2+1]=hi*17;
不是
alphaData[x2]=lo*16;
alphaData[x2+1]=hi*16;
在任何情况下,要生成与您发布的解码函数一起使用的值,您只需反转操作即可。所以乘以 17 变成除以 17,移位和掩码被重新排序,看起来像这样:
for(int x=0,w=0;x < alphaData.size();x+=2,w++)
{
unsigned char alpha1 = alphaData[x] / 17;
unsigned char alpha2 = alphaData[x+1] / 17;
Assert(alpha1 < 16 && alpha2 < 16);
alphaFinal[w]=(alpha2 << 4) | alpha1;
}
关于c++ - 两个字节合二为一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18093035/
我有这个, public enum Condition : uint // bitwise { None = 0, NewLine = 1, Space = 2 } Rule.
两条防线,一个函数: 试问你如何能保证客户端和服务器端具有相同的功能?表单域的验证闪现在我们眼前。别人把你的html复制到另外一个脚本,然后改变客户端的表单域验证--这并不是一件难事。摆
当我们打开此工作簿时,此代码将查看一个范围并找到包含文本“RCA Pending”的单元格,并将弹出一个 MsgBox,让用户知道该列中的哪一行包含特定文本。问题是,如果有多行包含此文本,也会有多个
我有一个 pandapower 网络,在一些公交车上,我将电池和光伏发电作为 FMU。现在我有一个主算法,可以在不同 FMU 的输入和输出之间创建连接并运行模拟。 我的问题是是否有可能将所有内容组合到
2 个不同的 jscript 合而为一: 我有 2 个 html 文件,其中有 2 个不同的 jscript。我想用 2 个 html 页面制作一个页面。我想在 1.html 按钮中添加 2.html
我的问题很简单,就是想把两张表拼成一张,不PK第一张表完全不同,它们完全不同 table1. table2. |в|q| |@|John | |ы|a|
我想弄清楚是否有办法将我的两个类合二为一。我的程序只是一个循环链表,我必须使用尽可能少的类。我还需要一些帮助来设置一种方法,让我用另一个节点替换一个节点。这是我的两个类(class)有什么想法吗? 第
我有 NSArray 和 NSArray。我想把所有的 NSArray 合二为一。 我认为有一个简单的函数可以使用,不是吗? 这是我收到的: ( ( n0eGi1KJW
向所有 CSS 专家致敬:D 我遇到了这种情况(在移动设备上): one two three four 我想,当通过@media处于横向模式时,将其更改为这样(不显示:无等): o
我想做的是将两个 or 查询与一个 and 查询结合起来 WHERE (id contains[cd] %@ OR name contains[cd] %@) AND manu = %@" 到目前为止
我正在尝试为游戏创建背景并有两个背景图像。我可以使用两个不同的 SKSpriteNode()、SKTexture、SKAction.sequence..etc 和一些数学将它们拼接在一起,但结果有点不
我有一个 HICON,我想将其用作另一个 HICON 的叠加层,以创建结果 HICON。结果 HICON 然后将用于“所有者绘制”控件(注意:它不使用图像列表)。覆盖图标具有透明颜色 RGB(0, 2
我正在修复我们在我们的一个网站上使用的模板,该模板具有以下代码 此代码段有效。 GS_googleAddAdSenseService("ca-pub-123"); GS_googleEna
我有以下 gulp 任务: gulp.task('app-scripts', function() { return getEnvScriptsStream() .pipe(
Perl 模板工具包 - 如何加入/连接多个变量(合为一个)例如,在 html 选择字段/组合中选择所选元素时需要它。 我在这里找到问题 https://www.perlmonks.org/?disp
我有一个 super 简单的网站,我想在本地托管。 我希望能够从网站触发windows程序并将结果返回给网站。 How can I accomplish this? Is this even poss
我遇到了这个问题,我在 中有一个 Logo 和一些导航链接。当我使用 CSS text-align:center; Logo 位于中心的一行,导航链接位于其正下方的另一行。 理想情况下,我希望它们并
我需要一个同时是 HashMap 和 ArrayList 的类。 为什么需要HashMap?根据键快速访问对象。 为什么我需要 ArrayList?随机选择一个元素。 你知道如何解决这个问题吗?有现成
我有一个模型类如下: public class CCP implements Serializable{ private static final long serialVersionUID
我正在使用 ReactiveCocoa 并且我有几个 SignalProducers let center = NSNotificationCenter.defaultCenter() let sig
我是一名优秀的程序员,十分优秀!