getpixels java_NDK(C)处理Bitmap后,使用getPixels获取的pixel值为0

想了半天不知道怎样命名标题,暂时就这么叫

情况是这样:

因项目上需要对图片进行相对复杂的处理,我就选择了用c去处理;

C的处理我是给了两个参数,一个input Bitmap,一个output Bitmap

代码(1)

JNIEXPORT void JNICALL Java_com_babypic_util_ImageFilters_filter(JNIEnv* env,jobject* self,jobject inBitmap,jobject outBitmap,jint mode);

然后java端,input Bitmap给的原图的Bitmap,output Bitmap是新创建的一个Bitmap,具体创建方式是这样的:

代码(2)

//创建输出Bitmap

Bitmap outBitmap = Bitmap.createBitmap(original.getWidth(), original.getHeight(), original.getConfig());

//调用native方法

ImageFilters.filter(original,outBitmap, mode.getValue());

在代码(2)处理完后,我使用outBitmap.getPixels(pixels, 0, mWidth, 0, 0, mWidth, mHeight) 获取outBitmap的pixels,

结果发现pixels的值全部为0;

但我使用一个Imageview 将outBitmap显示出来有是正确的,显示的效果是C处理后的效果,按照pixels的值为0的的道理去推,那么Imageview应该显示的是一块黑色,但没有;

不知道为什么pixel获取的值是0.

我暂时将创建output Bitmap的方式换了下

int pixels [] = new int[original.getWidth() * original.getHeight()];

original.getPixels(pixels, 0, original.getWidth(), 0, 0, original.getWidth(), original.getHeight());

Bitmap tBitmap = Bitmap.createBitmap(pixels, original.getWidth(), original.getHeight(), original.getConfig());

就这样,现在使用outBitmap.getPixels(pixels, 0, mWidth, 0, 0, mWidth, mHeight)获取的pixel的值就正确了,至于原因还不知道。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值