当前位置:  技术问答>linux和unix

LIBJPEG 获取jpg图像的R G B分量 ??

    来源: 互联网  发布时间:2017-03-21

    本文导语:  一是我参照example.c来改的,编译的时候,开始出错,后来加了一个 -ljpeg 就通过了,arm-linux-gcc 后来下到板子上进行运行,出现了 segment default不知什么原因,求指点啊~~一下是我的代码,我是想将jpg 转成RGB的图像...

一是我参照example.c来改的,编译的时候,开始出错,后来加了一个 -ljpeg 就通过了,arm-linux-gcc

后来下到板子上进行运行,出现了 segment default不知什么原因,求指点啊~~一下是我的代码,我是想将jpg 转成RGB的图像,也许有错啊 呵呵! 希望指教批评啊~~~
#include 
#include 
#include 
extern JSAMPLE * image_buffer; /* Points to large array of R,G,B-order data */
int image_height= 480 ; /* Number of rows in image */
int image_width = 640; /* Number of columns in image */
#define f "jpgimage.jpg"

struct my_error_mgr {
  struct jpeg_error_mgr pub; /* "public" fields */
  jmp_buf setjmp_buffer; /* for return to caller */
};

typedef struct my_error_mgr * my_error_ptr;

METHODDEF(void)
my_error_exit (j_common_ptr cinfo)
{
  my_error_ptr myerr = (my_error_ptr) cinfo->err;
  (*cinfo->err->output_message) (cinfo);
  longjmp(myerr->setjmp_buffer, 1);
}

GLOBAL(int)
read_JPEG_file (char * filename)
{
  struct jpeg_decompress_struct cinfo;
  struct my_error_mgr jerr;
  /* More stuff */
  FILE * infile; /* source file */
  JSAMPARRAY buffer; /* Output row buffer */
  int row_stride; /* physical row width in output buffer */
  if ((infile = fopen(filename, "rb")) == NULL) {
    fprintf(stderr, "can't open %sn", filename);
    return 0;
  }

  /* Step 1: allocate and initialize JPEG decompression object */
  cinfo.err = jpeg_std_error(&jerr.pub);
  jerr.pub.error_exit = my_error_exit;
  /* Establish the setjmp return context for my_error_exit to use. */
  if (setjmp(jerr.setjmp_buffer)) {
    jpeg_destroy_decompress(&cinfo);
    fclose(infile);
    return 0;
  }
  jpeg_create_decompress(&cinfo);
  jpeg_stdio_src(&cinfo, infile);
  (void) jpeg_read_header(&cinfo, TRUE);
  (void) jpeg_start_decompress(&cinfo); 
/////////////////////////////////////////////////////////
///////                                  ///////////////
////////////////////////////////////////////////////////////
  row_stride = cinfo.output_width * cinfo.output_components;
  buffer = (*cinfo.mem->alloc_sarray)
((j_common_ptr) &cinfo, JPOOL_IMAGE, row_stride, 1);

  while (cinfo.output_scanline 

    
 
 

您可能感兴趣的文章:

  • JPEG 图像压缩库 LibJPEG
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • libjpeg-turbo
  • jpeglib(libjpeg.a)调用问题
  • 我完成了libjpeg的库编译,如何做测试?
  • 我使用libjpeg库,有这样的错误JPEG parameter struct mismatch: library thinks size is 464, caller expects 428,怎么办呀?
  • configure: error: libjpeg.(a|so) not found
  • 谁用libjpeg处理过jpeg文件,能不能给点例子


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3