From 7a7633eebefa6434230dcc0b81dd815ef7f9afff Mon Sep 17 00:00:00 2001 From: Caesar2011 Date: Mon, 29 Aug 2016 13:58:25 +0200 Subject: [PATCH] First attempt to read images --- imanox-chroma-matting/main.cpp | 61 +++++++++++++++++++++++++++++++++ img/foregrounds/1.jpg | Bin 0 -> 16284 bytes 2 files changed, 61 insertions(+) create mode 100644 img/foregrounds/1.jpg diff --git a/imanox-chroma-matting/main.cpp b/imanox-chroma-matting/main.cpp index b4392ec..ac9a93c 100644 --- a/imanox-chroma-matting/main.cpp +++ b/imanox-chroma-matting/main.cpp @@ -1,9 +1,70 @@ #include +#include using namespace std; int main() { + loadJpg("..\img\foregrounds\1.jpg") cout << "Hello world!" << endl; return 0; } + +int loadJpg(const char* Name) { + unsigned char a, r, g, b; + int width, height; + struct jpeg_decompress_struct cinfo; + struct jpeg_error_mgr jerr; + + FILE * infile; /* source file */ + JSAMPARRAY pJpegBuffer; /* Output row buffer */ + int row_stride; /* physical row width in output buffer */ + if ((infile = fopen(Name, "rb")) == NULL) { + fprintf(stderr, "can't open %s\n", Name); + return 0; + } + cinfo.err = jpeg_std_error(&jerr); + jpeg_create_decompress(&cinfo); + jpeg_stdio_src(&cinfo, infile); + (void) jpeg_read_header(&cinfo, TRUE); + (void) jpeg_start_decompress(&cinfo); + width = cinfo.output_width; + height = cinfo.output_height; + + unsigned char * pDummy = new unsigned char [width*height*4]; + unsigned char * pTest = pDummy; + if (!pDummy) { + printf("NO MEM FOR JPEG CONVERT!\n"); + return 0; + } + row_stride = width * cinfo.output_components; + pJpegBuffer = (*cinfo.mem->alloc_sarray) + ((j_common_ptr) &cinfo, JPOOL_IMAGE, row_stride, 1); + + while (cinfo.output_scanline < cinfo.output_height) { + (void) jpeg_read_scanlines(&cinfo, pJpegBuffer, 1); + for (int x = 0; x < width; x++) { + a = 0; // alpha value is not supported on jpg + r = pJpegBuffer[0][cinfo.output_components * x]; + if (cinfo.output_components > 2) { + g = pJpegBuffer[0][cinfo.output_components * x + 1]; + b = pJpegBuffer[0][cinfo.output_components * x + 2]; + } else { + g = r; + b = r; + } + *(pDummy++) = b; + *(pDummy++) = g; + *(pDummy++) = r; + *(pDummy++) = a; + } + } + fclose(infile); + (void) jpeg_finish_decompress(&cinfo); + jpeg_destroy_decompress(&cinfo); + + BMap = (int*)pTest; + Height = height; + Width = width; + Depth = 32; +} diff --git a/img/foregrounds/1.jpg b/img/foregrounds/1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..dfd4d14fbbd915a0628191304e72ba63ad08eeb6 GIT binary patch literal 16284 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 bHk4eyfLfSnUSb$U?63R(+lG#cH2OaP`d3o> literal 0 HcmV?d00001