Tagged: Android

16,249  9

Camera2 API预览图 YUV转RGB方法性能比较

Android5.0发布后,随着Camera2的兼容性不断提升,目前完全可以替代旧API的使用。而Camera2在调用方法、相机设置、图片获取等方面都变化很大。在实时预览图像获取时,通用的图片格式由 YUV_NV21 变为 YUV_420_888 ,因此在转换为Bitmap时出现了问题,由于Google并没有直接提供YUV2RGB的方法,因此网上代码鱼龙混杂,本文总结了几个高效的转换方法。 //Camera API public void onPreviewFrame(byte[] data, Camera camera){ YuvImage image = new YuvImage(data, ImageFormat.NV21, size.width, size.height, null); } //Camera2 API public void onImageAvailable(ImageReader reader){ Image image = reader.acquireLatestImage(); } 原理 可以看出NV21和YUV很相似,因此由NV21[/latex]gt;RGB的时间与YUV[/latex]gt;RGB的时间相似。 JAVA直接转码 该方法实现简单,处理640×480预览图平均时间为33ms public void onImageAvailable(ImageReader reader) { Image image = reader.acquireLatestImage(); if (image == null) return; ByteArrayOutputStream outputbytes = new ByteArrayOutputStream(); ByteBuffer bufferY = image.getPlanes()[0].getBuffer(); byte[] data0 = new byte[bufferY.remaining()]; bufferY.get(data0); ByteBuffer bufferU = image.getPlanes()[1].getBuffer(); byte[] data1 = new byte[bufferU.remaining()]; bufferU.get(data1); ByteBuffer bufferV = image.getPlanes()[2].getBuffer(); byte[] data2 = new byte[bufferV.remaining()]; bufferV.get(data2); try { outputbytes.write(data0); outputbytes.write(data2); outputbytes.write(data1); } catch (IOException e) { e.printStackTrace(); } final...

2,819  0

【魔改】《旅行青蛙》

破解步骤: 用jadx打开apk发现在assetsbinDataManagedUnityEngine.dll这个文件,推测是一款unity游戏 用Reflector逆向Assembly-CSharp.dll发现代码都是明文的 修改代码实现想要的功能就好啦,然后用新的dll文件重新编译apk,签名就ok了 魔改版介绍: 游戏名修改为《你家青蛙》 每次打开游戏都是新的一天 每次打开游戏+500三叶草 抽奖仅消耗一张奖券 邮箱、抽奖获得奖券的数量x5 更多部分的汉化 与原版可并存 地址: 本次破解仅为学习之用,娱乐就好~ 魔改会无聊,开挂需谨慎~ https://pan.lanzou.com/i0pvokf 反复开几次游戏,就能玩一个月的进度….