您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ AndroidBitmap_unlockPixels函数代码示例

51自学网 2021-06-01 19:46:52
  C++
这篇教程C++ AndroidBitmap_unlockPixels函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中AndroidBitmap_unlockPixels函数的典型用法代码示例。如果您正苦于以下问题:C++ AndroidBitmap_unlockPixels函数的具体用法?C++ AndroidBitmap_unlockPixels怎么用?C++ AndroidBitmap_unlockPixels使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了AndroidBitmap_unlockPixels函数的28个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: bitmap_to_mat

void bitmap_to_mat(JNIEnv *env, jobject &srcBitmap, Mat &srcMat) {    void *srcPixels = 0;    AndroidBitmapInfo srcBitmapInfo;    try {        AndroidBitmap_getInfo(env, srcBitmap, &srcBitmapInfo);        AndroidBitmap_lockPixels(env, srcBitmap, &srcPixels);        uint32_t srcHeight = srcBitmapInfo.height;        uint32_t srcWidth = srcBitmapInfo.width;        srcMat.create(srcHeight, srcWidth, CV_8UC4);        if (srcBitmapInfo.format == ANDROID_BITMAP_FORMAT_RGBA_8888) {            Mat tmp(srcHeight, srcWidth, CV_8UC4, srcPixels);            tmp.copyTo(srcMat);        } else {            Mat tmp = Mat(srcHeight, srcWidth, CV_8UC2, srcPixels);            cvtColor(tmp, srcMat, COLOR_BGR5652RGBA);        }        AndroidBitmap_unlockPixels(env, srcBitmap);        return;    } catch (cv::Exception &e) {        AndroidBitmap_unlockPixels(env, srcBitmap);        jclass je = env->FindClass("java/lang/Exception");        env -> ThrowNew(je, e.what());        return;    } catch (...) {        AndroidBitmap_unlockPixels(env, srcBitmap);        jclass je = env->FindClass("java/lang/Exception");        env -> ThrowNew(je, "unknown");        return;    }}
开发者ID:Fuge2008,项目名称:SmartCropper,代码行数:30,


示例2: Java_com_jiangpeng_android_antrace_Utils_unsharpMask

JNIEXPORT void JNICALL Java_com_jiangpeng_android_antrace_Utils_unsharpMask(JNIEnv* env, jobject thiz, jobject input, jobject output){	AndroidBitmapInfo inputInfo;	AndroidBitmapInfo outputInfo;	void* src_pixels = 0;	void* dst_pixels = 0;	int ret = 0;	if ((ret = AndroidBitmap_getInfo(env, input, &inputInfo)) < 0) {		return;	}	if (inputInfo.format != ANDROID_BITMAP_FORMAT_RGBA_8888) {		return;	}	if ((ret = AndroidBitmap_lockPixels(env, input, &src_pixels)) < 0) {		return;	}	if ((ret = AndroidBitmap_getInfo(env, output, &outputInfo)) < 0) {		return;	}	if (outputInfo.format != ANDROID_BITMAP_FORMAT_RGBA_8888) {		return;	}	if ((ret = AndroidBitmap_lockPixels(env, output, &dst_pixels)) < 0) {		return;	}	unsharpMask(src_pixels, dst_pixels, outputInfo.width, outputInfo.height, inputInfo.stride, 5);	AndroidBitmap_unlockPixels(env, input);	AndroidBitmap_unlockPixels(env, output);}
开发者ID:larscwallin,项目名称:antrace,代码行数:34,


示例3: JNIFUNCF

void JNIFUNCF(ImageFilterFx, nativeApplyFilter, jobject bitmap, jint width, jint height,        jobject lutbitmap, jint lutwidth, jint lutheight,        jint start, jint end){    char* destination = 0;    char* lut = 0;    AndroidBitmap_lockPixels(env, bitmap, (void**) &destination);    AndroidBitmap_lockPixels(env, lutbitmap, (void**) &lut);    unsigned char * rgb = (unsigned char * )destination;    unsigned char * lutrgb = (unsigned char * )lut;    int lutdim_r   = lutheight;    int lutdim_g   = lutheight;;    int lutdim_b   = lutwidth/lutheight;;    int STEP = 4;    int off[8] =  {            0,            STEP*1,            STEP*lutdim_r,            STEP*(lutdim_r + 1),            STEP*(lutdim_r*lutdim_b),            STEP*(lutdim_r*lutdim_b+1),            STEP*(lutdim_r*lutdim_b+lutdim_r),            STEP*(lutdim_r*lutdim_b+lutdim_r + 1)    };    float scale_R = (lutdim_r-1.f)/256.f;    float scale_G = (lutdim_g-1.f)/256.f;    float scale_B = (lutdim_b-1.f)/256.f;    int i;    for (i = start; i < end; i+= STEP)    {        int r = rgb[RED];        int g = rgb[GREEN];        int b = rgb[BLUE];        float fb = b*scale_B;        float fg = g*scale_G;        float fr = r*scale_R;        int lut_b = (int)fb;        int lut_g = (int)fg;        int lut_r = (int)fr;        int p = lut_r+lut_b*lutdim_r+lut_g*lutdim_r*lutdim_b;        p*=STEP;        float dr = fr-lut_r;        float dg = fg-lut_g;        float db = fb-lut_b;        rgb[RED]   = clamp(interp(lutrgb,p  ,off,dr,dg,db));        rgb[GREEN] = clamp(interp(lutrgb,p+1,off,dr,dg,db));        rgb[BLUE]  = clamp(interp(lutrgb,p+2,off,dr,dg,db));    }    AndroidBitmap_unlockPixels(env, bitmap);    AndroidBitmap_unlockPixels(env, lutbitmap);}
开发者ID:AOSB,项目名称:android_packages_apps_Gallery2,代码行数:57,


示例4: JNIFUNCF

void JNIFUNCF(ImageFilterGeometry, nativeApplyFilterCrop, jobject src, jint srcWidth, jint srcHeight, jobject dst, jint dstWidth, jint dstHeight, jint offsetWidth, jint offsetHeight) {    char* destination = 0;    char* source = 0;    int len = dstWidth * dstHeight * 4;    AndroidBitmap_lockPixels(env, src, (void**) &source);    AndroidBitmap_lockPixels(env, dst, (void**) &destination);    crop(source, srcWidth, srcHeight, destination, dstWidth, dstHeight, offsetWidth, offsetHeight);    AndroidBitmap_unlockPixels(env, dst);    AndroidBitmap_unlockPixels(env, src);}
开发者ID:jituo666,项目名称:CrazyPic,代码行数:10,


示例5: LOGI

JNIEXPORT void JNICALL Java_com_leth_convertimage_MainActivity_convertImage	(JNIEnv *env, jobject  obj, jobject origbm,jobject graybm){		AndroidBitmapInfo  infocolor;	    void				*pixelscolor;	    AndroidBitmapInfo  infogray;	    void 				*pixelsgray;	    int 			    y;	    int          	    x;	    LOGI("Before convert");	    AndroidBitmap_getInfo(env, origbm, &infocolor);	    LOGI("infocolor :: width-%d height-%d format-%d stride-%ld"	    				   ,infocolor.width						   ,infocolor.height						   ,infocolor.stride);	    AndroidBitmap_getInfo(env, graybm, &infogray);	    AndroidBitmap_lockPixels(env, origbm, &pixelscolor);	    AndroidBitmap_lockPixels(env, graybm, &pixelsgray);	    LOGI("Start convert");	    uint8_t tmp;	    for ( y=0; y<infocolor.height; y++) {	    	rgba * line = (rgba *) pixelscolor;	    	uint32_t * grayline = (uint32_t *) pixelsgray;	    	for ( x=0; x < infocolor.width; x++){	    		tmp =	    				line[x].red * 0.33	    				+ line[x].green  * 0.33						+ line[x].blue * 0.33						;	    		grayline[x] =	    					  (line[x].alpha & 0xff) << 24							| (tmp & 0xff) << 16							| (tmp & 0xff) << 8							| (tmp & 0xff)							//| line[x].red << 16							//| line[x].green << 8	    					//| line[x].blue							;	    	}	    	pixelscolor = (int8_t *)pixelscolor + infocolor.stride;	    	pixelsgray = (int8_t *) pixelsgray + infogray.stride;	    }	    LOGI("Finish convert");	    AndroidBitmap_unlockPixels(env, origbm);	    AndroidBitmap_unlockPixels(env, graybm);}
开发者ID:frzleaf,项目名称:imageprocessing,代码行数:51,


示例6: AndroidBitmap_unlockPixels

BitmapPixelsLock::~BitmapPixelsLock() {  if (ptr_) {    jthrowable pendingException = env_->ExceptionOccurred();    if (!pendingException) {      AndroidBitmap_unlockPixels(env_, bitmap_);      return;    }    // unlockPixels by itself should not throw, but it can't run if    // there's an exception pending    env_->ExceptionClear();    AndroidBitmap_unlockPixels(env_, bitmap_);    env_->Throw(pendingException);  }}
开发者ID:1032689332,项目名称:fresco,代码行数:14,


示例7: Java_makemachine_android_examples_Nati_getrot

JNIEXPORT void JNICALL Java_makemachine_android_examples_Nati_getrot(JNIEnv * env, jclass klass, jobject bitmap){    int ret,j;      uint32_t * pixels;      void * raw;      AndroidBitmapInfo  info;      if ((ret = AndroidBitmap_getInfo(env, bitmap, &info)) < 0) return;      if ((ret = AndroidBitmap_lockPixels(env, bitmap, &raw)) < 0) return;      pixels=(uint32_t*)raw;       for(j=0;j<info.height*info.width;j++){          *(pixels+j)=*(Qwe::image+j);      }     int h,w,oH,oW,nW;     oH=info.width;     oW=info.height;     nW=info.width;      for(w=0;w<oW;w++){	      for(h=0;h<oH;h++){		      *(pixels+nW-h-1+nW*w)=*(Qwe::image+oW*h+w);	      }      }      AndroidBitmap_unlockPixels(env, bitmap);      free(Qwe::image);      free(Qwe::integral);      free(Qwe::mean);      free(Qwe::dev);#ifdef USE_DEVIATION      free(Qwe::intsquare);#endif}
开发者ID:arpheno,项目名称:receiptKeeper,代码行数:29,


示例8: Java_app_ssm_duck_duckapp_CropActivity_seperateLetter

JNIEXPORT void JNICALL Java_app_ssm_duck_duckapp_CropActivity_seperateLetter(JNIEnv *env, jobject obj, jobject bitmap) {    AndroidBitmapInfo info;    void* pixels;    //get information for bitmap object    if(0>AndroidBitmap_getInfo(env, bitmap,&info)){        LOGE("AndroidBitmap_getInfo() failed!");        return;    }    LOGI("imagesize(%d,%d)/n",info.width,info.height);    if(info.format != ANDROID_BITMAP_FORMAT_RGB_565){        LOGE("Bitmap format is not RGB_565:%d/n",info.format);        //return;    }    //attemp to lock the pixel address.    if(0> AndroidBitmap_lockPixels(env,bitmap,&pixels)){        LOGE("AndroidBitmap_lockPixels() failed!");        return;    }    //
C++ Android_JNI_GetEnv函数代码示例
C++ AndroidBitmap_lockPixels函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。