Unity LoadImage LoadRawTextureData 方法加载 Bitmap

LoadImage 只能加载Jpg或者Png的压缩格式图片 ,需要传入字节数组

LoadRawTextureData 加载原始图片数据 ,需要知道图片大小,格式

Android 想把 图片数据通过byte[]数组传到Unity

可以用bitmap压缩成Png格式的byte[].

如果要传原始图片数据,直接从bitmap获取byte[],数据从左上开始,在Unity中使用LoadRawTextureData加载的时候,数据从左下开始,因此图片竖着反转了。

 private static byte[] loadBitmapByteArray(Bitmap bitmap) {
        Matrix m = new Matrix();
        m.postScale(1, -1);
        bitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), m, true);
        int bytes = bitmap.getByteCount();
        ByteBuffer buffer = ByteBuffer.allocate(bytes);
        bitmap.copyPixelsToBuffer(buffer);
        byte[] array = buffer.array();
        return array;
    }

格式是RGBA32

发布了31 篇原创文章 · 获赞 2 · 访问量 2776

猜你喜欢

转载自blog.csdn.net/BDDNH/article/details/103312190
今日推荐