我采用下面这种方式加载了一张图像:
setContentView(R.layout.activity_main);
img = (ImageView)findViewById(R.id.img);
src = BitmapFactory.decodeResource(getResources(), R.drawable.genie);
img.setImageBitmap(src);
然后需要通过NDK进行简单图像处理计算
public native int getPicFromJNI(uint8_t * src, uint8_t * dst);
谢谢
setContentView(R.layout.activity_main);
img = (ImageView)findViewById(R.id.img);
src = BitmapFactory.decodeResource(getResources(), R.drawable.genie);
img.setImageBitmap(src);
然后需要通过NDK进行简单图像处理计算
public native int getPicFromJNI(uint8_t * src, uint8_t * dst);
谢谢
解决方案 »
- MFC中 Init失败
- android 移动3G定位的问题
- pc与android之间利用socket通信,如何实现端口转发??
- 请问android如何进行程序切换?
- Android修改默认布局的问题
- 精品来了-Material Design中文版新鲜出炉-极客学院
- 微信分享appID注册一次后即绑定该应用?
- 用真机运行安卓程序,会报下面的错误
- 在模拟器上运行程序报错Error while waiting for device: The emulator process for AVD **
- 如何解决升级到android studio 3.0后编译报错.dexing.DexArchiveMergerException: Unable to merge
- 求助 android studio 生成apk 安装到真机闪退
- 对于移动端接收显示大量带有HTML标签数据的问题
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte[] datas = baos.toByteArray();
private ImageView pic;
public native int getPicFromJNI( byte[] src,int w,int h ,byte[] dst);//NDK实现的函数
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
img = (ImageView)findViewById(R.id.img);
pic = (ImageView)findViewById(R.id.pic);
Bitmap src = BitmapFactory.decodeResource(getResources(), R.drawable.genie);//获取图像资源
pic.setImageBitmap(src); ByteArrayOutputStream baos = new ByteArrayOutputStream();
src.compress(Bitmap.CompressFormat.JPEG, 100, baos);
int w = src.getWidth();
int h = src.getHeight();
byte[] info = baos.toByteArray(); byte[] dst=new byte[w*h/4];//计算之后的输入图像dst只有原图的一半,所以除以了4
getPicFromJNI(info ,w,h,dst);//NDK函数 Bitmap resultInt = BitmapFactory.decodeByteArray(dst, 0, dst.length);//将byte转化为bitmap
img.setImageBitmap(resultInt);
这个代码执行会出现错误。。
谢谢