5 #include "TeLibJpeg\jmemdstsrc.h"     9   struct jpeg_error_mgr 
pub;    
    14   struct jpeg_decompress_struct cinfo;
    19   cinfo.err = jpeg_std_error(&jerr.
pub);
    20   jpeg_create_decompress(&cinfo);
    22   j_mem_src(&cinfo, srcbuf, srclen);
    25   jpeg_read_header(&cinfo, TRUE);
    27   jpeg_start_decompress(&cinfo);
    28   row_stride = cinfo.output_width * cinfo.output_components;
    30   buffer = (*cinfo.mem->alloc_sarray) ((j_common_ptr) &cinfo, JPOOL_IMAGE, row_stride, 1);
    32   *width = cinfo.output_width;
    33   *height = cinfo.output_height;
    34   *data = 
new uchar[cinfo.output_width*cinfo.output_height];
    45   while (cinfo.output_scanline < cinfo.output_height) {
    50     jpeg_read_scanlines(&cinfo, buffer, 1);
    53     unsigned char* src = buffer[0];
    54     if (cinfo.output_components == 1) {
    55         memcpy(dst, src, cinfo.output_width);
    57         for (
uint x=0;x<cinfo.output_width;x++)
    58             dst[x] = src[x * cinfo.output_components];
    60     dst += cinfo.output_width;
    64   jpeg_finish_decompress(&cinfo);
    72   jpeg_destroy_decompress(&cinfo);
    97   struct jpeg_compress_struct cinfo;
   106   struct jpeg_error_mgr jerr;
   108   JSAMPROW row_pointer[1];  
   118   cinfo.err = jpeg_std_error(&jerr);
   120   jpeg_create_compress(&cinfo);
   127   j_mem_dest(&cinfo, (
void**)&memBuf, &len);
   135   cinfo.image_width = w;    
   136   cinfo.image_height = h;
   137   cinfo.input_components = 1;       
   138   cinfo.in_color_space = JCS_GRAYSCALE;     
   143   jpeg_set_defaults(&cinfo);
   147   jpeg_set_quality(&cinfo, quality, TRUE );
   154   jpeg_start_compress(&cinfo, TRUE);
   166   while (cinfo.next_scanline < cinfo.image_height) {
   171     row_pointer[0] = &data[cinfo.next_scanline * row_stride];
   172     (void) jpeg_write_scanlines(&cinfo, row_pointer, 1);
   174   jpeg_finish_compress(&cinfo);
   175   jpeg_destroy_compress(&cinfo);
   178   FILE *f = fopen(filename, 
"wb");
   180       fwrite(memBuf, 1, len, f);
   183       dbgprintf(
"Failed to open file %s for writing\n", filename);
 struct jpeg_error_mgr pub
 
void floatToNormalizedInt(T *dst, const float *src, uint w, uint h, T maxValue)
 
void WriteJPEGFile(uchar *data, int w, int h, const char *filename, int quality)
 
int ReadJPEGFile(uchar *srcbuf, int srclen, uchar **data, int *width, int *height)
 
void dbgprintf(const char *fmt,...)
 
void FloatToJPEGFile(const char *name, const float *d, int w, int h)