KJpegQuanty.c
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:1k
源码类别:

模拟服务器

开发平台:

C/C++

  1. //---------------------------------------------------------------------------
  2. // Sword3 Engine (c) 1999-2000 by Kingsoft
  3. //
  4. // File: KJpegQuanty.cpp
  5. // Date: 2000.08.08
  6. // Code: Daniel Wang
  7. // Desc: Jpeg 读取 Quantize Table 
  8. // From: Cloud Wu's JPEG Decoder
  9. //---------------------------------------------------------------------------
  10. #include <windows.h>
  11. #include "KJpegLib.h"
  12. //---------------------------------------------------------------------------
  13. // 函数: read_DQT
  14. // 功能: 读取 Quantize Table 
  15. // 参数: stream Jpeg数据流
  16. // 返回: PBYTE Jpeg数据流
  17. //---------------------------------------------------------------------------
  18. PBYTE jpeg_read_DQT(PBYTE stream)
  19. {
  20. WORD seg_size;
  21. int i;
  22. LPBYTE stream_end;
  23. short *qtb;
  24. BYTE qtb_id;
  25. short tmp;
  26. READ_WORD(seg_size, stream);
  27. stream_end = stream + seg_size - 2;
  28. while (stream < stream_end)
  29. {
  30. qtb_id = READ_BYTE(stream);
  31. if (qtb_id & 0x10)
  32. {
  33. qtb_id &= 3;
  34. qtb = (short *) malloc(256);
  35. jpeg_qtable[qtb_id] = qtb;
  36. for (i = 0; i < 64; i++)
  37. {
  38. READ_WORD(tmp, stream);
  39. qtb[i] = tmp<<4;
  40. }
  41. }
  42. else
  43. {
  44. qtb_id &= 3;
  45. qtb = (short *) malloc(256);
  46. jpeg_qtable[qtb_id] = qtb;
  47. for (i = 0; i < 64; i++)
  48. {
  49. qtb[i] = (READ_BYTE(stream))<<4;
  50. }
  51. }
  52. }
  53. if (stream != stream_end)
  54. return NULL;
  55. return stream_end;
  56. }
  57. //---------------------------------------------------------------------------