gpt4 book ai didi

java - 三星 S9+ 和 RenderScript Intrinsics

转载 作者:行者123 更新时间:2023-11-30 06:40:14 24 4
gpt4 key购买 nike

我使用此脚本将 YUV_420_888 图像转换为位图。在我的三星 S8 上一切正常。我在我的 S9+ 上尝试了 RenderScript,结果是一个黑色位图。没有错误,没有警告只是一个黑色位图。我将 S9+ 更新为 Android Pie,但一切仍然是黑色的。我真的无法解释 S9+ 设备有什么问题...

        int W = mImage.getWidth();
int H = mImage.getHeight();

Image.Plane Y = mImage.getPlanes()[0];
Image.Plane U = mImage.getPlanes()[1];
Image.Plane V = mImage.getPlanes()[2];

int Yb = Y.getBuffer().remaining();
int Ub = U.getBuffer().remaining();
int Vb = V.getBuffer().remaining();

byte[] data = new byte[Yb + Ub + Vb];

Y.getBuffer().get(data, 0, Yb);
V.getBuffer().get(data, Yb, Vb);
U.getBuffer().get(data, Yb + Vb, Ub);

RenderScript rs = RenderScript.create(Main2Activity.this);
ScriptIntrinsicYuvToRGB yuvToRgbIntrinsic = ScriptIntrinsicYuvToRGB.create(rs, Element.U8_4(rs));

Type.Builder yuvType = new Type.Builder(rs, Element.U8(rs)).setX(data.length);
Allocation in = Allocation.createTyped(rs, yuvType.create(), Allocation.USAGE_SCRIPT);

Type.Builder rgbaType = new Type.Builder(rs, Element.RGBA_8888(rs)).setX(W).setY(H);
Allocation out = Allocation.createTyped(rs, rgbaType.create(), Allocation.USAGE_SCRIPT);

final Bitmap bmpout = Bitmap.createBitmap(W, H, Bitmap.Config.ARGB_8888);

in.copyFromUnchecked(data);

yuvToRgbIntrinsic.setInput(in);
yuvToRgbIntrinsic.forEach(out);
out.copyTo(bmpout);

**编辑:**我将我的 mImage 的分辨率更改为 2.960 x 1.440 像素并收到一些崩溃。当应用程序崩溃时,我再次安装了应用程序,当应用程序崩溃时,显示了位图。我认为问题不在于代码。我认为 S9+ 在正确运行 renderscript 时存在一些问题。

最佳答案

我放置在 ImagView 上的 TextureView 似乎 S9+ 有问题。删除 TextureView 后,应用程序运行正常。

关于java - 三星 S9+ 和 RenderScript Intrinsics,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58720472/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com