文档章节

Android JNI 读写Bitmap的方法

 国仔饼
发布于 06/21 10:40
字数 155
阅读 32
收藏 0

Java层创建Bitmap,通过JNI将Bitmap传到C/C++进行处理

Java部分

public static native boolean greenBitmap(Bitmap bitmap);

C/C++部分

JNIEXPORT jboolean JNICALL Java_com_test_Test_greenBitmap
  (JNIEnv *, jclass, jobject);
#include <android/bitmap.h>

JNIEXPORT jboolean JNICALL Java_com_test_Test_greenBitmap
  (JNIEnv *env, jclass, jobject src)
{
    unsigned char *srcData = NULL;
    AndroidBitmap_lockPixels(env, src, (void**)&srcData);
    AndroidBitmapInfo srcInfo;
    AndroidBitmap_getInfo(env, src, &srcInfo);

    int pixel = srcInfo.width * srcInfo.height;
    for(int i=0;i<pixel;i++)
    {
        srcData [4*i] = (unsigned char)0;//red
        srcData [4*i+1] = (unsigned char)255;//green
        srcData [4*i+2] = (unsigned char)0;//blue
        srcData [4*i+3] = (unsigned char)255;//alpha
    }

    AndroidBitmap_unlockPixels(env, src);
    return true;
}

Android.mk

LOCAL_LDLIBS += -ljnigraphics

 

© 著作权归作者所有

共有 人打赏支持
粉丝 0
博文 28
码字总数 5730
作品 0
深圳
ANDROID JNI之JAVA域与c域的互操作

本文讲述AndroidJava域与C域互操作:Java域调用c域的函数;c域访问Java域的属性和方法;c域生成的对象的保存与使用。重点讲解c域如何访问Java域。 虽然AndroidJNI实现中,c实现与c++实现是有...

垂盆草
2012/10/13
0
0
[Android] Android开发优化之——对Bitmap的内存优化

在Android应用里,最耗费内存的就是图片资源。而且在Android系统中,读取位图Bitmap时,分给虚拟机中的图片的堆栈大小只有8M,如果超出了,就会出现OutOfMemory异常。所以,对于图片的内存优...

haman
2014/01/25
0
1
Android开发优化之——对Bitmap的内存优化

在Android应用里,最耗费内存的就是图片资源。而且在Android系统中,读取位图Bitmap时,分给虚拟机中的图片的堆栈大小只有8M,如果超出了,就会出现OutOfMemory异常。所以,对于图片的内存优...

KingMing
2015/04/03
0
0
android Bitmap的内存优化

在Android应用里,最耗费内存的就是图片资源。而且在Android系统中,读取位图Bitmap时,分给虚拟机中的图片的堆栈大小只有8M,如果超出了,就会出现OutOfMemory异常。所以,对于图片的内存优...

ljrapple
2014/08/12
0
0
Android应用开发中对Bitmap的内存优化

在Android应用里,最耗费内存的就是图片资源。而且在Android系统中,读取位图Bitmap时,分给虚拟机中的图片的堆栈大小只有8M,如果超出了,就会出现OutOfMemory异常。所以,对于图片的内存优...

等待流星
2014/09/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

C++ std::thread

C++11提供了std::thread类来表示一个多线程对象。 1,首先介绍一下std::this_thread命名空间: (1)std::this_thread::get_id():返回当前线程id (2)std::this_thread::yield():用户接口...

yepanl
13分钟前
0
0
Nignx缓存文件与动态文件自动均衡的配置

下面这段nginx的配置脚本的作用是,自动判断是否存在缓存文件,如果有优先输出缓存文件,不经过php,如果没有,则回到php去处理,同时生成缓存文件。 PHP框架是ThinkPHP,最后一个rewrite有关...

swingcoder
17分钟前
0
0
20180920 usermod命令与用户密码管理

命令 usermod usermod 命令的选项和 useradd 差不多。 一个用户可以属于多个组,但是gid只有一个;除了gid,其他的组(groups)叫做扩展组。 usermod -u 1010 username # 更改用户idusermod ...

野雪球
19分钟前
0
0
Java网络编程基础

1. 简单了解网络通信协议TCP/IP网络模型相关名词 应用层(HTTP,FTP,DNS等) 传输层(TCP,UDP) 网络层(IP,ICMP等) 链路层(驱动程序,接口等) 链路层:用于定义物理传输通道,通常是对...

江左煤郎
25分钟前
0
0
使用xtrabackup完成远程备份

转载收藏,以防丢失 需求 Can I backup remote databases from my local server02-27-2013, 06:17 AMHi, I am using mysqldump so far for taking daily backups of my Production datab......

阿dai
31分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部