当前位置: 技术问答>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的图像,也许有错啊 呵呵! 希望指教批评啊~~~
后来下到板子上进行运行,出现了 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