这篇教程C++ AndroidBitmap_unlockPixels函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中AndroidBitmap_unlockPixels函数的典型用法代码示例。如果您正苦于以下问题:C++ AndroidBitmap_unlockPixels函数的具体用法?C++ AndroidBitmap_unlockPixels怎么用?C++ AndroidBitmap_unlockPixels使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了AndroidBitmap_unlockPixels函数的28个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: bitmap_to_matvoid 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_unsharpMaskJNIEXPORT 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: JNIFUNCFvoid 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: JNIFUNCFvoid 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: LOGIJNIEXPORT 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_unlockPixelsBitmapPixelsLock::~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_getrotJNIEXPORT 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_seperateLetterJNIEXPORT 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函数代码示例
|