jni层使用skia解码jpeg数据流
2015-01-09 20:53
288 查看
首发 edn论坛
在网上找不到实例代码
skia的sample也没有。只好跟着BitmapFartory.cpp
总结了一下写出下面代码。
插入到SimpleWebCam工程中就可以使用jpeg输出的摄像头了。
在网上找不到实例代码
skia的sample也没有。只好跟着BitmapFartory.cpp
总结了一下写出下面代码。
void init_bitmap(){ src_bitmap = new SkBitmap; stream = new SkMemoryStream(); //SkAutoUnref aur(stream); } void jpegtoABGRY(unsigned char *src,int length) { SkBitmap::Config prefConfig = SkBitmap::kARGB_8888_Config; SkImageDecoder::Mode mode = SkImageDecoder::kDecodePixels_Mode;; bool doDither = false; bool isMutable = false,ret; stream->setMemory(src,length,false); //SkJPEGImageDecoder* decoder = new SkJPEGImageDecoder; SkImageDecoder* decoder = SkImageDecoder::Factory(stream); if (NULL == decoder) { LOGE("SkImageDecoder::Factory returned null"); return; } //decoder->setSampleSize(1); decoder->setDitherImage(false); //decoder->setPreferQualityOverSpeed(false); SkImageDecoder::Format format = SkImageDecoder::kJPEG_Format; //stream->rewind(); ret = decoder->decode(stream, src_bitmap, prefConfig, mode, true); //SkImageDecoder::DecodeStream(stream, src_bitmap, prefConfig, mode, &format); if (!ret) { //return android::nullObjectReturn("decoder->decode returned false"); LOGE("decoder->decode returned false"); return ; } //default int dstRowBytes = -1 DEBUG("here line %d bitmaps: values :%d\t%d",__LINE__,src_bitmap->getSize(),src_bitmap->getConfig()); src_bitmap->copyPixelsTo(&rgb[0],IMG_WIDTH*IMG_HEIGHT*sizeof(int)); int fd_tmp,fd_tmp_dst; #if 0 if(++counter>5){ counter = 0; DEBUGLOGL(); fd_tmp = open("/data/tmp.jpg",O_RDWR|O_CREAT|O_TRUNC,777); if(fd_tmp<0){ dbgv(fd_tmp);//strerror (errno) goto CONTINUE_FLAG; } fd_tmp_dst = open("/data/row.rgb",O_RDWR|O_CREAT|O_TRUNC,777); if(fd_tmp_dst<0) goto CONTINUE_FLAG; DEBUGLOGL(); //write(fd_tmp,src,length); write(fd_tmp_dst,&rgb[0],IMG_WIDTH*IMG_HEIGHT*4); close(fd_tmp); close(fd_tmp_dst); } #endif CONTINUE_FLAG: delete(decoder); }
插入到SimpleWebCam工程中就可以使用jpeg输出的摄像头了。
相关文章推荐
- Android平台上使用skia库进行jpeg图片解码
- 图像解码之一——使用libjpeg解码jpeg图片
- 使用libjpeg进行JPEG图像解码
- 使用TCPMP解码显示JPEG图片WINCE5.0
- 图像解码之一——使用libjpeg解码jpeg图片
- Jpeglib移植到arm平台 & 修改支持解码内存中的jpeg数据流
- 图像解码之一:使用libjpeg解码jpeg图片
- FW:使用libjpeg解码jpeg图片
- 图像解码之一——使用libjpeg解码jpeg图片
- libjpeg-turbo使用实例(编解码jpeg、jpg转bmp、bmp转jpg代码)
- 使用libjpeg解码jpeg图片
- 使用Ilj编解码Jpeg文件
- SKIA中的JPEG编解码
- FW:使用libjpeg解码jpeg图片
- jpeg解码库使用实例
- 图像解码之一——使用libjpeg解码jpeg图片
- linux下的jpeg解码库使用
- 图像解码之一——使用libjpeg解码jpeg图片
- 调试经验--使用TI提供的jpeg解码codec
- 使用TCPMP解码显示JPEG图片WINCE5.0