- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
使用 RenderScript,我正在尝试使用 ScriptIntrinsic3DLUT ( http://developer.android.com/reference/android/renderscript/ScriptIntrinsic3DLUT.html )
一般来说,这个脚本就像任何其他渲染脚本一样工作
可能问题出在set script parameters
步骤上,从文档中我应该调用script.setLUT (Allocation lut)
,但是生成/为此分配设置值?
我的代码示例是:
// create RS context
RenderScript rs = RenderScript.create(context);
// create output bitmap
Bitmap bitmapOut = Bitmap.createBitmap(bitmapIn.getWidth(), bitmapIn.getHeight(), bitmapIn.getConfig());
// create bitmap allocations
Allocation allocIn = Allocation.createFromBitmap(rs, bitmapIn);
Allocation allocOut = Allocation.createFromBitmap(rs, bitmapOut);
// create script
ScriptIntrinsic3DLUT script = ScriptIntrinsic3DLUT.create(rs, Element.U8_4(rs));
// set 3D LUT for the script
how to create the `Allocation lut` ??
script.setLUT(lut);
// process the script
script.forEach(allocIn, allocOut);
// copy result to bitmap output
allocOut.copyTo(bitmapOut);
我的问题类似于How to use ScriptIntrinsic3DLUT with a .cube file?
但不一样。我不关心多维数据集文件。我可以从字节数组、整数、矩阵等等创建 LUT。我只想知道如何/在何处将这些字节放入分配中。此分配的适当格式是什么?
最佳答案
这会创建一个不修改实际颜色值的 3D LUT。很好的例子,尽管它是如何工作的。
private ScriptIntrinsic3DLUT mIntrinsic;
private void initCube() {
final int sx = 32;
final int sy = 32;
final int sz = 16;
Type.Builder tb = new Type.Builder(mRS, Element.U8_4(mRS));
tb.setX(sx);
tb.setY(sy);
tb.setZ(sz);
Type t = tb.create();
mCube = Allocation.createTyped(mRS, t);
int dat[] = new int[sx * sy * sz];
for (int z = 0; z < sz; z++) {
for (int y = 0; y < sy; y++) {
for (int x = 0; x < sx; x++ ) {
int v = 0xff000000;
v |= (0xff * x / (sx - 1));
v |= (0xff * y / (sy - 1)) << 8;
v |= (0xff * z / (sz - 1)) << 16;
dat[z*sy*sx + y*sx + x] = v;
}
}
}
mCube.copyFromUnchecked(dat);
}
然后像这样使用它
mIntrinsic.setLUT(mCube);
如果有人可以帮助解析 .cube 文件并将其放入其中,我将不胜感激。
关于android - 如何分配 LUT 以在 ScriptIntrinsic3DLUT 上使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26401503/
是否有 ScriptIntrinsic(用于常见的内置 RenderScript 内核)操作来有效地旋转位图内存? 最佳答案 不,在当前的 RS 支持库中没有旋转位图的功能。 关于android -
我是一名优秀的程序员,十分优秀!