jpeg_memory_dest.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. // From http://www.codeguru.com/forum/archive/index.php/t-378333.html
  2. #include "jpeglib.h"
  3. /*
  4. This a custom destination manager for jpeglib that
  5. enables the use of memory to memory compression.
  6. */
  7. typedef struct {
  8. struct jpeg_destination_mgr pub; /* base class */
  9. JOCTET* buffer; /* buffer start address */
  10. int bufsize; /* size of buffer */
  11. size_t datasize; /* final size of compressed data */
  12. int* outsize; /* user pointer to datasize */
  13. int errcount; /* counts up write errors due to
  14. buffer overruns */
  15. } memory_destination_mgr;
  16. typedef memory_destination_mgr* mem_dest_ptr;
  17. METHODDEF(void)
  18. init_destination (j_compress_ptr cinfo);
  19. METHODDEF(boolean)
  20. empty_output_buffer (j_compress_ptr cinfo);
  21. METHODDEF(void)
  22. term_destination (j_compress_ptr cinfo);
  23. GLOBAL(void)
  24. jpeg_memory_dest (j_compress_ptr cinfo, JOCTET* buffer, int bufsize, int* outsize);
  25. METHODDEF(void)
  26. init_source (j_decompress_ptr dinfo);
  27. METHODDEF(boolean)
  28. fill_input_buffer (j_decompress_ptr dinfo);
  29. METHODDEF(void)
  30. skip_input_data (j_decompress_ptr dinfo, INT32 num_bytes);
  31. METHODDEF(void)
  32. term_source (j_decompress_ptr dinfo);
  33. GLOBAL(void)
  34. jpeg_memory_src (j_decompress_ptr dinfo, unsigned char* buffer, size_t size);
粤ICP备19079148号